MOOC 中 M2018C 入门和进阶练习
妈妈叫我穿秋裤
只求毕业!
展开
-
7-51 求n以内最大的k个素数以及它们的和 (20 分)
本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:1000 10输出样例1:997+991+983+977+971+967...原创 2018-12-26 11:05:02 · 2933 阅读 · 0 评论 -
7-33 统计素数并求和 (20 分)
本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143 思路:从素数定义出发,只要该数能被除1和本身的数字整除 就不是素数 要注意区间左边是1的情况#includ...原创 2018-12-24 18:56:01 · 4868 阅读 · 0 评论 -
7-32 求交错序列前N项和 (15 分)
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,结果保留三位小数。输入样例:5输出样例:0.917思路:观察得第n个序列分母为2*n-1,分子为n 利用这一规律循环相加即可#include <stdio.h>i...原创 2018-12-24 16:59:40 · 1598 阅读 · 0 评论 -
7-31 掉入陷阱的数字 (15 分)
对任意一个自然数N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1;然后对N1重复这种操作,可以产生新自然数N2;……多次重复这种操作,运算结果最终会得到一个固定不变的数Nk,就像掉入一个数字“陷阱”。本题要求对输入的自然数,给出其掉入“陷阱”的过程。输入格式:在一行内给出一个自然数N0(N0<30000)。输...原创 2018-12-24 16:40:15 · 773 阅读 · 0 评论 -
7-30 念数字 (15 分)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,...原创 2018-12-24 11:10:29 · 3331 阅读 · 0 评论 -
7-29 二分法求多项式单根 (20 分)
二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f(r)=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则 如果f(a)f(b)<0,则计算中点的值f((a+b)/2); 如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则...原创 2018-12-24 10:21:58 · 808 阅读 · 0 评论 -
7-28 求整数的位数及各位数字之和 (15 分)
对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过109的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。输入样例:321输出样例:3 6思路:对10取余 获得数字最末位 相加 接着除以10 记录次数 当n = 0时 跳出循环#include<stdio.h>int...原创 2018-12-24 09:48:44 · 2181 阅读 · 0 评论 -
7-27 兔子繁衍问题 (15 分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9思路:斐波那契数列 不懂的同学请戳下面链...原创 2018-12-24 09:40:15 · 470 阅读 · 0 评论 -
7-5 输出倒三角图案 (5 分)
本题要求编写程序,输出指定的由“*”组成的倒三角图案。输入格式:本题目没有输入。输出格式:按照下列格式输出由“*”组成的倒三角图案。* * * * * * * * * *思路:使用printf函数编辑器。注意!数清空格和星星个数。记得换行#include<stdio.h>int main(){ printf("* * * *\n");...原创 2018-12-12 10:51:46 · 558 阅读 · 0 评论 -
7-4 输出菱形图案 (5 分)
本题要求编写程序,输出指定的由“A”组成的菱形图案。输入格式:本题无输入输出格式:按照下列格式输出由“A”组成的菱形图案。 AA A A思路:使用printf函数输出。注意!数清空格数。记得换行#include&amp;lt;stdio.h&amp;gt;int main(){&amp;nbsp; printf(&quot;&amp;nbsp; A\n&q原创 2018-12-12 10:35:48 · 1089 阅读 · 0 评论 -
7-3 输出带框文字 (5 分)
本题要求编写程序,输出指定的带框文字。输入格式:本题无输入输出格式:按照下列格式输出带框文字。原创 2018-12-12 10:25:49 · 2609 阅读 · 2 评论 -
7-2 I Love GPLT (5 分)
这道超级简单的题目没有任何输入。你只需要把这句很重要的话 —— I Love GPLT——竖着输出就可以了。所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。思路:使用printf 函数输出,每一行一个字符当然也包括字母,别忘了换行。#include&lt;stdio.h&gt;int main(){ printf("I\n"); printf(" ...原创 2018-12-12 10:09:36 · 764 阅读 · 1 评论 -
7-1 重要的话说三遍 (5 分)
这道超级简单的题目没有任何输入。你只需要把这句很重要的话 —— “I’m gonna WIN!”——连续输出三遍就可以了。注意每遍占一行,除了每行的回车不能有任何多余字符。思路:使用printf 函数输出即可。注意!记得换行。最后一句敲回车和不敲回车都可以。#include&amp;lt;stdio.h&amp;gt;int main(){ printf (&quot;I'm gonna WIN!\n&quot;);原创 2018-12-12 10:03:43 · 1005 阅读 · 0 评论 -
7-66 找出总分最高的学生 (15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。输出格式:在一行中输出总分最高学生的姓名、学号...原创 2018-12-28 16:37:18 · 1658 阅读 · 0 评论 -
7-15 BCD解密 (10 分)
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给...原创 2018-12-17 21:34:58 · 555 阅读 · 0 评论 -
7-34 求分数序列前N项和 (15 分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66思路:使用中间变量存储分母#...原创 2018-12-24 19:08:04 · 328 阅读 · 0 评论 -
7-35 猴子吃桃问题 (15 分)
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1<N≤10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3输出样例:10...原创 2018-12-24 19:25:22 · 374 阅读 · 0 评论 -
7-36 韩信点兵 (10 分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数...原创 2018-12-24 19:35:01 · 388 阅读 · 0 评论 -
7-50 近似求PI (15 分)
思路:只要最后一项小于给定精度 就跳出循环 保留五位小数输出即可#include <stdio.h>int main(){ double eps, sum=1, i, temp=1; scanf("%le", &eps); for(i=1; temp>eps; i++){ temp = temp*i/(2*i+1); ...原创 2018-12-26 10:33:50 · 1180 阅读 · 0 评论 -
7-49 Have Fun with Numbers (20 分)
Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number con...原创 2018-12-26 10:18:13 · 537 阅读 · 0 评论 -
7-48 求组合数 (15 分)
思路:定义一个函数 连续用三次就可以啦#include <stdio.h>double f (int n) { double s = 1; for(int i = 1;i < n + 1;i ++){ s *= i; } return s; } int main(){ int m,n; ...原创 2018-12-26 10:02:20 · 530 阅读 · 0 评论 -
7-47 二进制的前导的零 (10 分)
计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。现在,你的任务是写一个程序,输入一个整数,输出在32位表达下它前导的零的个数。输入格式:一个整数,在32位的整数可以表达的范围内。输出格式:一...原创 2018-12-26 09:54:42 · 525 阅读 · 1 评论 -
7-46 爬动的蠕虫 (15 分)
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数...原创 2018-12-25 15:07:33 · 219 阅读 · 0 评论 -
7-45 找完数 (20 分)
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中...原创 2018-12-25 15:01:57 · 1163 阅读 · 0 评论 -
7-44 黑洞数 (20 分)
黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 = 693; 第2次重排求差得:963 - 3...原创 2018-12-25 14:48:05 · 427 阅读 · 0 评论 -
7-43 Shuffling Machine (20 分)
Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where employees collaborate with gambler...原创 2018-12-25 14:29:23 · 474 阅读 · 0 评论 -
7-42 整除光棍 (20 分)
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。...原创 2018-12-25 11:37:51 · 2023 阅读 · 2 评论 -
7-41 计算阶乘和 (10 分)
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。输入格式:输入在一行中给出一个不超过10的正整数N。输出格式:在一行中输出S的值。输入样例:3输出样例:9思路:第N项为前N-1项*N,利用这个规律 ,可以将每项的乘积都相加 #include <stdio.h>int main(){ int N; s...原创 2018-12-25 10:47:21 · 360 阅读 · 0 评论 -
7-40 到底是不是太胖了 (10 分)
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | <×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H...原创 2018-12-25 10:23:58 · 452 阅读 · 0 评论 -
7-39 龟兔赛跑 (20 分)
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间...原创 2018-12-25 09:24:58 · 161 阅读 · 0 评论 -
7-38 支票面额 (15 分)
一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?输入格式:输入在一行中给出小于100的正整数n。输出格式:在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。 输入样例1:23输出样例1:25.51输入样例2:22...原创 2018-12-25 09:11:59 · 223 阅读 · 0 评论 -
7-37 输出整数各位数字 (15 分)
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。输入样例:123456输出样例:1 2 3 4 5 6 思路:传统方法 首先要知道该整数的位数 然后将该整数从左向右依次分割 另一种方法 定义字符数组 输...原创 2018-12-25 08:55:20 · 4570 阅读 · 0 评论 -
7-14 然后是几点 (15 分)
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行...原创 2018-12-17 21:08:56 · 491 阅读 · 0 评论 -
7-13 后天 (5 分)
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。输入格式:输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。输出格式:在一行中输出D天的后天是星期几。输入样例:3输出样例: 5思路:一周7天 如果是周六周日要减7#include<...原创 2018-12-17 20:50:33 · 1440 阅读 · 1 评论 -
7-25 求奇数和 (15 分)
本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1输出样例:116思路:创建一个数组 用来存入奇数 不断循环输入 判断条件为正整数#include<s...原创 2018-12-20 14:08:23 · 1082 阅读 · 0 评论 -
7-24 猜数字游戏 (15 分)
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包...原创 2018-12-20 13:53:24 · 752 阅读 · 0 评论 -
7-23 分段计算居民水费 (10 分)
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。输入格式:输入在一行中给出非负实数x。输出格式:在一行输出应交的水费,精确到小数点后2位。输入样例1:12输出样例1:16.00输入样例2:16输出...原创 2018-12-20 10:15:27 · 1143 阅读 · 0 评论 -
7-22 用天平找小球 (10 分)
三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2输出样例:C思路:如果 A等于B 那么就输出C;如果A 不等于B 并且B等于C 输出A;如果A 不等于B 并且B不等于C 输出B。#i...原创 2018-12-20 10:13:20 · 180 阅读 · 0 评论 -
7-21 超速判断 (10 分)
模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。输入格式:输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。输出格式:在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。输入样例1:40输出样例1:Speed: 40 - O...原创 2018-12-20 10:07:59 · 2891 阅读 · 0 评论 -
7-20 简单计算器 (20 分)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例...原创 2018-12-20 10:04:23 · 6224 阅读 · 1 评论