MOOC清华程设基础
文章平均质量分 61
sunshineman1986
这个作者很懒,什么都没留下…
展开
-
MOOC清华《程序设计基础》第4章:插花游戏-求素数
#include using namespace std;bool isPrime(int n){ for(int i = 2; i * i <= n; i++) if(n % i == 0) return false; return true;}int main(){ //int sum = 0;//测试代码 for(int n = 2; n <= 100;转载 2017-06-14 19:16:55 · 272 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:筛法求素数
#include using namespace std;const int N = 100;bool sieve[N + 1]; int main(){ for(int i = 2; i <= N; i++) sieve[i] = true; for(int d = 2; d * d <= N; d++) if( sieve[d] ) for(int n = d转载 2017-06-14 19:48:39 · 264 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:筛法数人数
#include using namespace std;int main(){ int r3 = 0, r5 = 0, r7 = 0, sieve[200]; cin >> r3 >> r5 >> r7; for(int i = 0; i < 200; i++) sieve[i] = 0; for(int i = r3; i < 200; i = i + 3) sie转载 2017-06-14 20:44:30 · 256 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章:谁做的好事(顺序枚举)
清华附中有ABCD四位同学,在某一天一起值日。放学路上扶起了摔倒的老奶奶。老奶奶给清华附中送来了表扬信,校长很想知道他们四个人中谁做了好事。A说:不是我。B:是C。C:是D。D:他胡说。已知三人说了真话一人说了假话,请问谁做的好事?#include using namespace std;int main(){ char good_man; good_man = 'A'转载 2017-06-29 16:27:02 · 1567 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章:谁做的好事(循环枚举)
清华附中有ABCD四位同学,在某一天一起值日。放学路上扶起了摔倒的老奶奶。老奶奶给清华附中送来了表扬信,校长很想知道他们四个人中谁做了好事。A说:不是我。B:是C。C:是D。D:他胡说。已知三人说了真话一人说了假话,请问谁做的好事?#include using namespace std;int main(){ char good_man; for(good_man =转载 2017-06-29 16:46:53 · 964 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章:谁是嫌疑犯(普通循环枚举)
某市刑侦大队正在调查一桩疑案,对涉及到的六名嫌疑人进行分析。已知有如下事实:(1)A、B至少有一人作案;(2)A、E、F中至少有两人作案;(3)A、D不可能是同案犯;(4)B、C或同时作案,或与本案无关;(5)C、D中有且仅有一人作案;(6)如果D没有作案,那么E也不可能作案。请问:谁是嫌疑犯?#include using namespace std;转载 2017-06-29 17:18:35 · 875 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章:谁是嫌疑犯(位运算循环枚举)
某市刑侦大队正在调查一桩疑案,对涉及到的六名嫌疑人进行分析。已知有如下事实:(1)A、B至少有一人作案;(2)A、E、F中至少有两人作案;(3)A、D不可能是同案犯;(4)B、C或同时作案,或与本案无关;(5)C、D中有且仅有一人作案;(6)如果D没有作案,那么E也不可能作案。请问:谁是嫌疑犯?#include using name转载 2017-06-29 17:40:13 · 446 阅读 · 0 评论 -
MOOC清华《程序设计基础》第5章:八皇后问题-代码一
代码一是MOOC版视频中清华大学徐明星老师的算法,从每列尝试放棋子。//问题描述://在8×8的棋盘上,放置8个皇后,使两两之间互不攻击。所谓互不攻击是指://(1)不在棋盘的同一行;//(2)不在棋盘的同一列;//(3)不在棋盘的同一对角线上。#include using namespace std;const int Normalize = 9; //用来统一数组下标转载 2017-07-10 15:41:38 · 364 阅读 · 0 评论 -
MOOC清华《程序设计基础》第5章:八皇后问题-代码二
代码二是清华大学出版社《程序设计基础》(第三版)中清华大学吴文虎老师的算法,从每一行来尝试放棋子。//问题描述://在8×8的棋盘上,放置8个皇后,使两两之间互不攻击。所谓互不攻击是指://(1)不在棋盘的同一行;//(2)不在棋盘的同一列;//(3)不在棋盘的同一对角线上。#include using namespace std;const int Normalize =转载 2017-07-10 18:33:13 · 358 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:查找扑克牌(线性查找)
给出13张扑克牌,找出黑桃Q。#include using namespace std;int main(){ int cards[13] = {101, 113, 303, 206, 405, 208, 311, 304, 410, 309, 112, 207, 402}; int pos = -1; for(int i = 0; i < 13; i++) if(c转载 2017-06-30 18:59:25 · 250 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:查找扑克牌最小值(线性查找)
对方出了一张7,我应该出哪张牌?//不管是找取特定值的元素//还是找满足特定条件的元素//基本思想还是一个一个一次枚举//比较的次数和总元素的个数呈线性关系//我们称这种查找方法为“线性查找”(也称“顺序查找”) #include using namespace std;int main(){ int cards[13] = {101, 113, 303, 206转载 2017-06-30 19:20:23 · 262 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:查找扑克牌(折半查找)
//在已经排好序(前提)的数列中查找某个数,可以用折半查找算法 //为“机会公平”起见,一般从中间开始查找——这样通常效率是最高的 #include using namespace std;int main(){ int cards[13] = {101, 112, 113, 206, 207, 208, 303, 304, 309, 311, 402, 405, 410}; //转载 2017-07-01 09:57:28 · 261 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:整理扑克牌(插入排序)
#include using namespace std;int main(){ int cards[13] = {101, 113, 303, 206, 405, 208, 311, 304, 410, 309, 112, 207, 402}; for(int i = 1; i < 13; i++) //枚举每张待插入的牌 { int target = cards[i], m转载 2017-07-01 16:12:34 · 384 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:整理扑克牌(插入排序精简版)
#include using namespace std;int main(){ int cards[13] = {101, 113, 303, 206, 405, 208, 311, 304, 410, 309, 112, 207, 402}; for(int i = 1; i < 13; i++) //枚举每张待插入的牌 { int target = cards[i], p转载 2017-07-01 16:14:04 · 273 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:整理扑克牌(选择排序)
#include using namespace std;int main(){ int cards[13] = {101, 113, 303, 206, 405, 208, 311, 304, 410, 309, 112, 207, 402}; for(int i = 0; i < 13; i++) //枚举每个位置i { int min = cards[i], min_i转载 2017-07-02 08:31:55 · 262 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:选择排序(函数写法)
#include using namespace std;int main(){ int a[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76}; void SelectionSort(int cards[], int n); //指针作形参必须写出形参名 void OutputOfArray(int cards[], int转载 2017-07-02 17:51:05 · 256 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:插入排序(函数写法)
#include using namespace std;int main(){ int a[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76}; void InsertionSort(int cards[], int n); //指针作形参必须写出形参名 void OutputOfArray(int cards[], int转载 2017-07-02 17:32:48 · 283 阅读 · 0 评论 -
MOOC清华《程序设计基础》第1章第1题:三角形求面积
题目描述已知一个三角形的底边为4,高为5,请编写程序计算输出它的面积输入描述无输出描述输出三角形面积//************************//*程序名:三角形求面积//*功 能:三角形求面积//*编制人:刘聪//*时 间:2017年1月17日//************************#include using原创 2017-06-11 16:17:33 · 891 阅读 · 0 评论 -
MOOC清华《程序设计基础》第1章第2题:求周长
题目描述已知一个圆的半径是2,请编写程序计算输出它的周长。要求计算中以3.14159作为圆周率的值。(保留小数点后5位)输入描述无输出描述输出圆形周长附加说明保留小数点的功能需要包含iomanip头文件,并在输出数字前加上"例如:cout 将会输出:3.1416//*******************原创 2017-06-11 16:19:44 · 398 阅读 · 0 评论 -
MOOC清华《程序设计基础》第1章第3题:求平方和
题目描述请编写程序计算输出从1到10十个自然数的平方和输入描述无输出描述输出平方和//************************//*程序名:求平方和//*功 能:求平方和//*编制人:刘聪//*时 间:2017年1月17日//************************#include using namespace std原创 2017-06-11 16:21:40 · 489 阅读 · 0 评论 -
MOOC清华《程序设计基础》第1章第4题:求解方程
题目描述请编写程序计算输出 3x^2 -5x - 9 = 0 的正根。提示:使用一元二次方程求根公式来计算。(保留小数点后5位)输入描述无输出描述输出正根//************************//*程序名:求解方程//*功 能:求解方程//*编制人:刘聪//*时 间:2017年1月18日//******************原创 2017-06-11 16:23:17 · 423 阅读 · 0 评论 -
MOOC清华《程序设计基础》第1章第5题:银行存款问题
题目描述某人1980年在银行存入了一年期自动转存的定期存款,金额为100元。假定平均年利率为2.7%(不考虑银行对利率的调整),则到2015年到期时,该客户帐户上共有多少钱?(保留小数点后3位)输入描述无输出描述输出存款数//************************//*程序名:银行存款问题//*功 能:银行存款问题//*编制人:刘聪原创 2017-06-11 16:26:12 · 2317 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章第1题:三角形求面积2
题目描述已知一个三角形的底边为 4 ,高需要从键盘输入,请编写程序计算并输出指定高度的三角形面积。输入描述输入的三角形的高为浮点类型(float)输出描述输出三角形面积,保留小数点后2位样例输入2样例输出4.00#include #include #include using namespac原创 2017-06-11 17:22:05 · 991 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章第2题:求圆周长2
题目描述请编写程序计算输出任意半径的圆周长。要求半径从键盘输入,计算时以 3.14159 作为圆周率的值。输入描述输入半径为浮点型(float)输出描述输出周长,保留小数点后5位。样例输入0.5样例输出3.14159/*students please write your program here*原创 2017-06-11 17:24:27 · 680 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章第3题:直角三角形求斜边
题目描述请编写程序计算直角三角形的斜边长度,两条直角边的长度由键盘输入。输入描述两直角边均为浮点型(float),中间以一个空格隔开输出描述输出斜边长度,保留小数点后5位样例输入3 4样例输出5.00000//************************//*程序名:直角三角形求斜边 //*功 能:原创 2017-06-11 17:26:55 · 2595 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章第4题:解方程2
题目描述请编写程序计算输出一元二次多项式 ax^2 + bx + c = 0 的两个根中较大的那一个,多项式的三个系数从键盘输入,保证均为正整数且一定有实根存在(b^2-4ac>=0)输入描述a,b,c均为整型,且以空格隔开输出描述输出较大根(两根相同输出该值即可),保留小数点后5位样例输入1 2 1样例输出-1.00原创 2017-06-11 17:29:02 · 552 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章第5题:银行存款问题2
题目描述某人 1980 年在银行存入了一年期自动转存的定期存款,金额为 M 元。假定平均年利率为 r % (不考虑银行对利率的调整),则到 2015 年到期时,该客户帐户上共有多少钱?输入描述M 和 r均为浮点类型,以空格隔开输出描述输出保留2位小数样例输入1000 2.7样例输出2540.77//**原创 2017-06-11 17:31:04 · 655 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章第1题:谁是大块头
题目描述P3.1 四个人比块头大,每人说了一句话。A说:不是我。B说:是C。C说:是B。D说:他胡说。已知这四个人有3人说了真话。请你编程找出谁是块头最大的人,输出相应的大写字母。输入描述无输出描述只输出大写字母(注意:大写!!!)。(再次强调:程序只能输出答案,不能输出任何描述性文字!)样例输入原创 2017-06-11 18:15:01 · 1275 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章第2题:谁的饭量小
题目描述P3.2 四个人比饭量小,每人说了一句话。A说:不是我。B说:是C。C说:是D。D说:他胡说。已知这四个人只有1人说了真话。请你编程找出谁是饭量最小的人,输出相应的大写字母。输入描述 输出描述只输出大写字母样例输入无样例输出B#include using namespa原创 2017-06-11 18:26:24 · 368 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章第3题:今天星期几
题目描述突然有一天,你忘记了今天是星期几,中国人凑吉利,所以你找来了八个人,让他们每人说两句话,第一句为今天星期几,另一句为今天不是星期几,并且两句中一句真,一句假。可能第一句是真,也可能第二句是真。最后请你确定今天是星期几,并输出。输入描述8行,每行是两个星期几的阿拉伯数字表示,用空格分开输出描述一个数字,表示今天星期几样例输入原创 2017-06-11 18:28:11 · 1076 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章第4题:求平方和2
题目描述请编写程序计算输出从 1 到 N 共 N 个自然数的平方和( P1.2 的升级版)输入描述自然数N输出描述1到N的平方和样例输入2样例输出5#include using namespace std;int main(){ int i = 0, square = 0, sum = 0, n = 0;原创 2017-06-11 18:30:52 · 568 阅读 · 0 评论 -
MOOC清华《程序设计基础》第3章第5题:求特定数的和
题目描述请编写程序计算输出从 1 到 N 共 N 个自然数中所有模 4 余 1 且是 3 的倍数的那些数的总和输入描述自然数N输出描述和样例输入10样例输出9#include using namespace std;int main(){ int n = 0, i = 0, matching = 0, sum = 0;原创 2017-06-11 18:33:34 · 583 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to 50)
//******************************************* //程序名:GuessNumber(from1to50) //功 能:玩家心中想1到50中的一个数,// 给出6张卡片,让玩家说出哪几张// 卡片上有这个数,然后计算机便能// 判断出是哪个数 //编制人:刘聪 //时 间:2017年5月26日/原创 2017-06-12 11:35:33 · 436 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to 100)
//******************************************* //程序名:GuessNumber(from1to100) //功 能:玩家心中想1到100中的一个数,// 给出7张卡片,让玩家说出哪几张// 卡片上有这个数,然后计算机便能// 判断出是哪个数 //编制人:刘聪 //时 间:2017年5月27日原创 2017-06-12 11:38:02 · 708 阅读 · 0 评论 -
MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to n)
//******************************************* //程序名:GuessNumber(from1to_n) //功 能:玩家心中想1到n中的一个数,// 给出若干张卡片,让玩家说出哪几张// 卡片上有这个数,然后计算机便能// 判断出是哪个数 //编制人:刘聪 //时 间:2017年5月27日/原创 2017-06-12 11:39:22 · 527 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:折半插入排序(测试代码版)
测试代码1.0:#include using namespace std;int main(){ int cards[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76}; for(int i = 1; i < 17; i++) { int target = cards[i]; int low = 0, high =原创 2017-07-02 21:41:28 · 237 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章第1题:筛法求ab间的素数测试版
尤其要注意注释中所提到的“窍门”和“陷阱”。#include using namespace std;int main(){ int a = 3, b = 11; bool sieve[b + 1]; for(int i = 2; i <= b; i++) //这个循环用来给筛子赋初值;尤其要注意 i 从 2 开始,不可以从 a 开始,否则 d = 2 时 if 判断会出错原创 2017-07-04 14:14:43 · 365 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用筛法做)
题目描述(再次申明:本上机题全部由程序自动评判对错,所以没有要求的输出请一定不要出现,具体参照样例输入和输出即可)输入两个正整数a、b,找出[a, b]之间的素数,由小到大输出。(2 输入描述每一行输入两个正整数,两数之间有一个空格,可能有多行输入!tips:利用while(cin>>a>>b)语句实现循环输入变量输出描述输出[a,b原创 2017-07-04 15:20:02 · 1021 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用枚举法做)
题目描述(再次申明:本上机题全部由程序自动评判对错,所以没有要求的输出请一定不要出现,具体参照样例输入和输出即可)输入两个正整数a、b,找出[a, b]之间的素数,由小到大输出。(2 输入描述每一行输入两个正整数,两数之间有一个空格,可能有多行输入!tips:利用while(cin>>a>>b)语句实现循环输入变量输出描述输出[a,b原创 2017-07-04 15:43:16 · 1144 阅读 · 0 评论 -
MOOC清华《程序设计基础》第4章:折半插入排序(函数写法)
#include using namespace std;int main(){ int a[17]={56,32,67,12,23,89,3,14,2,25,43,31,1,24,44,35,76}; void BinaryInsectionSort(int cards[],int n); void OutputOfArray(int cards[],int n); Output原创 2017-07-02 21:56:40 · 213 阅读 · 0 评论