题目地址:here

pat 2-05 求集合数据的均方差

没什么可说的,大水题

 #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 ;
}

pat 2-06 数列求和

从结果的最后一位开始计算,依次计算每一个十进制位,水题

 #include<cstdio>
#include<stack>
using namespace std; int main()
{
int num,times;
scanf("%d%d", &num, &times);
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 ;
}

pat 2-07 素因子分解

这是整数的素因子分解问题,一个整数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 ; }

 pat 2-08 用扑克牌计算24点

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的更多相关文章

  1. 201871030125-王芬 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...

  2. 201871030114-蒋鑫 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接☛ 班级博客 这个作业要求链接☛ 作业要求 我的课程学习目标☛ 1. 体验软件项目开发中的两人合作,练习结对编程(Pair programming).2. 掌握Github ...

  3. 201871030134-余宝鹏 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming) 2.掌握GitHub协作开发程 ...

  4. 201871030102_崔红梅 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程2. 掌握Github协作开发程序的操作方法.3.阅读<现代软 ...

  5. 201871010130-周学铭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18卓越班 这个作业要求链接 实验三结对编程要求 我的课程学习目标 体验软件项目开发中的两人合作,练习结对编程(Pair programming).掌握Github协作开 ...

  6. 201871030139-于泽浩 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030139-于泽浩 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 软件工程结对项目 ...

  7. 【StatLearn】统计学习中knn算法实验(2)

    接着统计学习中knn算法实验(1)的内容 Problem: Explore the data before classification using summary statistics or vis ...

  8. 201871030116-李小龙 实验二 个人项目—《D{0-1} KP》项目报告

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...

  9. 201871010113-贾荣娟 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三-软件工程结对项目 这个课程学习目标 掌握软件开发流程,提高自身能力 这个作业在哪些方面帮助我实现了学习目标 本次实验让我对软件工程 ...

  10. 201871030125-王芬 实验二 个人项目-《D{0-1}问题》软件项目报告

    实验二 个人项目-<D{0-1}问题>软件项目报告 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 ...

随机推荐

  1. libxml2.dylb 罗致<libxml/tree.h> 老是找不到头文件

    libxml2.dylb 导致<libxml/tree.h> 老是找不到头文件 添加了libxml2.dylb的framework ,结果还是引用不了<libxml/tree.h&g ...

  2. 检查radio/checkbox是否至少选择一项

    //---------------------------------------------------------- // 功能:检查radio/checkbox是否至少选择一项 // 参数: / ...

  3. Git:基础要点

    直接快照,而非比较差异. 近乎所有操作都可本地执行. 在Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网.但如果用CVCS 的话,差不多所有操作都需要连接网络.因为Git 在本地磁盘上就保 ...

  4. tomcat使用不同jdk的解决方法

    1,修改bin文件夹下面的catalina.bat文件,把如下内容 rem ----- Execute The Requested Command -------------------------- ...

  5. 明日传奇第三季/全集Legends of Tomorrow迅雷下载

    <明日传奇>第三季将加入一名新的女性角色.据Variety得到的消息称,塔拉·阿什(Tala Ashe)将作为<明日传奇>第三季的常规演员加入该剧.在第三季中,塔拉·阿什饰演的 ...

  6. 管理Mysql常用指令

    知识会更新,数据库系统也一样,本文只保证对Mysql 5.7以及MariaDB 10有效. 编码篇 展示当前默认的编码和字符集 SHOW VARIABLES LIKE 'char%'; 修改服务器默认 ...

  7. Android 常用的数据加密方式

    前言 Android 很多场合需要使用到数据加密,比如:本地登录密码加密,网络传输数据加密,等.在android 中一般的加密方式有如下: 亦或加密 AES加密 RSA非对称加密 当然还有其他的方式, ...

  8. java的mock测试框架

    无论是敏捷开发.持续交付,还是测试驱动开发(TDD)都把单元测试作为实现的基石.随着这些先进的编程开发模式日益深入人心,单元测试如今显得越来越重要了.在敏捷开发.持续交付中要求单元测试一定要快(不能访 ...

  9. hdu 1038 Biker&#39;s Trip Odometer(水题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1038 Biker's Trip Odometer Time Limit: 2000/1000 MS ...

  10. ASP.NET MVC:UrlHelper.cs

    ylbtech-funcation-Utility: ASP.NET MVC:UrlHelper.cs 充当表示 ASP.NET Razor 页的类的基类. 1.UrlHelper 类返回顶部 1-1 ...