PAT《数据结构学习与实验指导》实验项目集 2-05 2-06 2-07 2-08
题目地址:here
没什么可说的,大水题
#include<cstdio>
#include<cmath>
int main()
{
int n;
scanf("%d", &n);
int data[n];
double average = 0.0;
for(int i = ; i < n; i++)
{
scanf("%d", &data[i]);
average += data[i];
}
average /= n;
double variance = 0.0;
for(int i = ; i < n; i++)
{
variance += (average - data[i])*(average - data[i]);
}
variance = sqrt(variance/n);
printf("%.5f", variance);
return ;
}
从结果的最后一位开始计算,依次计算每一个十进制位,水题
#include<cstdio>
#include<stack>
using namespace std; int main()
{
int num,times;
scanf("%d%d", &num, ×);
if(times == )printf("");
else
{
//从结果的最后一位开始计算,结果放入栈中
stack<char> result;
int carryBit = ;//进位
for(int i = times; i >= ;i--)
{
int tmp = num*i + carryBit;
result.push(tmp% + '');
carryBit = tmp/;
}
if(carryBit != )
printf("%d", carryBit);
while(result.empty() == false)
{
printf("%c", result.top());
result.pop();
}
}
return ;
}
这是整数的素因子分解问题,一个整数n的素数因子不可能同时大于sqrt(n), 先用“埃拉托斯特尼筛法”计算出sqrt(n)以内的所有素数,然后再注逐一查看这些素数是否是n的素因子,要注意最后除完所有素因子后如果结果>1,这个数也是素因子
//筛选法寻找n以内的素数,返回素数的个数
int findPrime(const int n, int prime[])
{
int primeNum = ;
bool isPrime[n+];//0表示是素数,1表示非素数
memset(isPrime, , sizeof(isPrime));
for(int i = ; i <= n; i++)
if(isPrime[i] == )
{//所有素数的倍数都不是素数
prime[primeNum++] = i;
for(int k = , t; (t = i*k)<= n; k++)
isPrime[t] = ;
}
return primeNum;
}
int main()
{
long N;
scanf("%ld", &N);
int *prime = new int[(int)sqrt(N)];
int primeNum = findPrime(sqrt(N), prime);
printf("%d=", N);
if(N == )printf("");
bool isFirst = true;
for(int i = ; i < primeNum; i++)
{
int exp = ;
while(N % prime[i] == )
{
exp++;
N = N / prime[i];
}
if(exp != )
{
if(isFirst == false)
printf("*");
else isFirst = false;
printf("%d", prime[i]);
if(exp > )
printf("^%d", exp);
}
} if(N > )
{
if(isFirst == false)
printf("*");
printf("%d", N);
}
return ; }
24点游戏请参考我的博客:here
注意的是结果后面要加‘\n’,要不然会提示答案格式错误
#include<cstdio>
#include<iostream>
#include<string>
using namespace std; //cards[i]的值是通过表达式expr[i]计算而来
bool GameRecur(double cards[], string expr[],
const int cardsNum, const int result)
{
if(cardsNum == 1)
{
if(cards[0] == result)
{
//cout<<expr[0]<<endl;
return true;
}
else return false;
}
//从已有数中任选两个,计算得到中间结果,并且和剩余的数一起存在cards数组的前
//cardsNum-1个位置
for(int i = 0; i<cardsNum; i++)
{
for(int k = i+1; k < cardsNum; k++)
{
double a = cards[i], b = cards[k];
cards[k] = cards[cardsNum-1];
string expra = expr[i], exprb = expr[k];
expr[k] = expr[cardsNum-1]; cards[i] = a + b;
expr[i] = '(' + expra + '+' + exprb + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true; cards[i] = a - b;
expr[i] = '(' + expra + '-' + exprb + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true; if(a != b)
{
cards[i] = b - a;
expr[i] = '(' + exprb + '-' + expra + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true;
} cards[i] = a * b;
expr[i] = '(' + expra + '*' + exprb + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true; if(b != 0)
{
cards[i] = a / b;
expr[i] = '(' + expra + '/' + exprb + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true;
} if(a != 0 && a!= b)
{
cards[i] = b / a;
expr[i] = '(' + exprb + '/' + expra + ')';
if(GameRecur(cards, expr, cardsNum-1, result))
return true;
} //把选出来的两个数放回原位
cards[i] = a;
cards[k] = b;
expr[i] = expra;
expr[k] = exprb;
}
}
return false;
} string PointGame(int cards[], const int cardsNum, const int result)
{
string expr[cardsNum];
double cardsCopy[cardsNum];
for(int i = 0; i < cardsNum; i++)
{
char buf[30];
sprintf(buf, "%d", cards[i]);
expr[i] = buf;
cardsCopy[i] = cards[i];
}
if(GameRecur(cardsCopy, expr, cardsNum, result))
return expr[0].substr(1, expr[0].length()-2); //去掉最外层的括号
else return "-1";
} int main()
{
int a[4];
for(int i = 0; i < 4; i++)
scanf("%d", &a[i]);
printf("%s\n", PointGame(a,4,24).c_str());
return 0;
}
【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3393183.html
PAT《数据结构学习与实验指导》实验项目集 2-05 2-06 2-07 2-08的更多相关文章
- 201871030125-王芬 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...
- 201871030114-蒋鑫 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接☛ 班级博客 这个作业要求链接☛ 作业要求 我的课程学习目标☛ 1. 体验软件项目开发中的两人合作,练习结对编程(Pair programming).2. 掌握Github ...
- 201871030134-余宝鹏 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming) 2.掌握GitHub协作开发程 ...
- 201871030102_崔红梅 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程2. 掌握Github协作开发程序的操作方法.3.阅读<现代软 ...
- 201871010130-周学铭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 18卓越班 这个作业要求链接 实验三结对编程要求 我的课程学习目标 体验软件项目开发中的两人合作,练习结对编程(Pair programming).掌握Github协作开 ...
- 201871030139-于泽浩 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
201871030139-于泽浩 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 软件工程结对项目 ...
- 【StatLearn】统计学习中knn算法实验(2)
接着统计学习中knn算法实验(1)的内容 Problem: Explore the data before classification using summary statistics or vis ...
- 201871030116-李小龙 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...
- 201871010113-贾荣娟 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三-软件工程结对项目 这个课程学习目标 掌握软件开发流程,提高自身能力 这个作业在哪些方面帮助我实现了学习目标 本次实验让我对软件工程 ...
- 201871030125-王芬 实验二 个人项目-《D{0-1}问题》软件项目报告
实验二 个人项目-<D{0-1}问题>软件项目报告 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 ...
随机推荐
- Nginx rewrite URL examples with and without redirect address
原文地址: http://www.claudiokuenzler.com/blog/436/nginx-rewrite-url-examples-with-without-redirect-addre ...
- how to use kvo with swift (怎样在swift中使用kvo)
- jquery 图片文件转base64 显示
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- input输入框只能输入正整数正则
input输入框加入限制只能输入正整数,输入其他字符会自动清除: <input type="text" value="1" onkeyup="i ...
- Swift - UITableView状态切换效果
Swift - UITableView状态切换效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TableViewTapAn ...
- 寂静之地百度云在线观看迅雷下载A Quiet Place高清BT下载
原名:A Quiet Place 地区:美国 语言:英语 / 美国手语 首播:2018-05-18(中国大陆) / 2018-03-09(西南偏南电影节) / 2018-04-06(美国) 电视台 ...
- 发展受阻第一至四季/全集Arrested迅雷下载
发展受阻 第一至四季 Arrested Development 1-4 (2013)本季看点:<发展受阻>讲述了一个很有钱的Bluth家庭的故事,主要聚焦家族里的各种古怪事和相互算计带来的 ...
- Android Studio导入项目的中文注释乱码解决方法
在Android studio中,导入Android的项目后,容易出现项目文件的中文乱码,中文无法正常显示,变成了一些格子问号之类的,导致无法查看中文的注释,下面来看看导入项目和解决乱码 ...
- OpenCV教程(44) harris角的检测(2)
在上一篇教程中,我们得到的harris特征角二值图中,角的数目特别多,本章我们用一个局部最大化的方法,只保留局部值最大的harris特征角. // Harris角计算 cv::corner ...
- Sequence在Oracle中的使用
Oracle中,当需要建立一个自增字段时,需要用到sequence.sequence也可以在mysql中使用,但是有些差别,日后再补充,先把oracle中sequence的基本使用总结一下,方便日后查 ...