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 这个作业要求链接 ...
随机推荐
- 委托、Lambda表达式、事件系列05,Action委托与闭包
来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); C ...
- Delphi判断文件是否正在被使用
首先,我们先来认识下CreateFile函数,它的原型如下 HANDLE CreateFile( LPCTSTR lpFileName, //指向文件名的指针 DWORD dwDesired ...
- 整理:iOS 短信与电话事件的获取
整理:iOS 短信与电话事件的获取 background information: Core Telephony iOS 4.0 的官方 API 裡頭,多了一個叫做 Core Telephony ...
- C#编程(六十六)----------表达式树总结
表达式树总结 基础 表达式树提供了一个将可执行代码转换成数据的方法.如果你要在执行代码之前修改或转换此代码,那么它是很有用的.有其是当你要将C#代码----如LINQ查询表达式转换成其他代码在另一个程 ...
- arcgis的afcore_libfnp.dll经常被360杀毒,删除,请到恢复区恢复
arcgis的afcore_libfnp.dll经常被360杀毒,删除,请到恢复区恢复
- Linux学习4-阿里云服务器(CentOS)下使用 Tomcat安装 Jenkins
前言 通常做自动化测试,需要用到jenkins来做持续集成,那么linux系统里面如何使用tomcat安装Jenkins环境呢? 前面一篇已经搭建好java和tomcat环境,接着直接下载jenkin ...
- selector属性介绍
本文来自:http://blog.csdn.net/brokge/article/details/9713041 简介: 根据不同的选定状态来定义不同的现实效果 分为四大属性: android:sta ...
- Orchard模块开发全接触1:起步
在<http://www.cnblogs.com/luminji/p/3831281.html>中简单介绍了 Orchard 的模块开发,接下来,我们需要做个更复杂的例子,Orchard ...
- 用Eclipse开发Androd应用程序时,自带虚机模拟器太慢了,怎么办
问:用Eclipse开发Androd应用程序时,系统自带模拟器太慢了,怎么办? 答:用Genymotin
- protobuf 更新消息和扩展,包
一.更新一个消息类型 如果一个已有的消息格式已无法满足新的需求--如,要在消息中添加一个额外的字段--但是同时旧版本写的代码仍然可用.不用担心!更新消息而不破坏已有代码是非常简单的.在更新时只要记住以 ...