计算机C语言趣味的程序设计题目百例 .pdf
《计算机C语言趣味的程序设计题目百例 .pdf》由会员分享,可在线阅读,更多相关《计算机C语言趣味的程序设计题目百例 .pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Contest-2011级 C语言课程大作业Start Time:2012-02-19 16:25:00 End Time:2012-03-01 22:00:00Current Time:2012-2-23 15:51:18 Status:RunningPublicProblem ID Title Y1211 Problem A 趣味程序设计狼追兔子Y1212 Problem B 趣味程序设计巧夺偶数Y1213 Problem C 趣味程序设计五猴分桃Y1214 Problem D 趣味程序设计高次方数Y1215 Problem E 趣味程序设计借书方案Y1216 Problem F 趣味程序
2、设计过桥问题Y1217 Problem G 趣味程序设计数制转换1218 Problem H 趣味程序设计打渔晒网N1219 Problem I 趣味程序设计喝酒问题Y1220 Problem J 趣味程序设计哥德巴赫猜想1221 Problem K 趣味程序设计打印日历Y1222 Problem L 趣味程序设计抓交通肇事逃逸犯Y1223 Problem M 趣味程序设计反序数Y1224 Problem N 趣味程序设计新郎新娘1225 Problem O 趣味程序设计称重砝码1226 Problem P 趣味程序设计求车速Y1227 Problem Q 趣味程序设计谁是窃贼Y1228 Pr
3、oblem R 趣味程序设计出售金鱼Y1229 Problem S 趣味程序设计百钱百鸡Y1230 Problem T 趣味程序设计谜语博士1231 Problem U 趣味程序设计猜牌术()Y1232 Problem V 趣味程序设计舍罕王的失算1233 Problem W 趣味程序设计怎样存钱利最大1234 Problem X 趣味程序设计猜牌术(二)Y1235 Problem Y 趣味程序设计爱因斯坦的数学题Y1236 Problem Z 趣味程序设计取火柴游戏1237 Problem a 趣味程序设计平分鱼和筐Y1238 Problem b 趣味程序设计可逆素数名师资料总结-精品资料欢
4、迎下载-名师精心整理-第 1 页,共 42 页 -Y1239 Problem c 趣味程序设计三色球问题Y1240 Problem d 趣味程序设计抢n 游戏写在最前:本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了.由于能力不足.有题目未解决的或者有错误的我会认真听取大家的.意见的.呵呵 .有一两个.偷了下懒哦 提供原题目还有本人自己的解答的源代码。感谢大家的。建议 .问题 A:趣味程序设计狼追兔子时间限制:1 Sec 内存限制:128 MB 提交:341 解决:63 提交 状态 讨论版 题目描述一只兔子躲进了n 个环形分布的洞的某一个中。狼在
5、第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子 这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?输入有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2n100),即洞穴个数。输入到文件结尾符为止。输出兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 42 页 -样例输入10 8 15 样例输出2 4 7 9 2 4 5 7 8 9 11 12 14 提示用一个数组a10,对应的元素a0,a1,a2 a9对应表示10 个洞,初
6、值均置1。通过一个循环用“穷举法”找兔子,第n 次查找对应第(n1)%10 个洞,如果在第(n1)%10 个洞中没有找到兔子,因此将数组元素a(n1)%10 置 0 值。循环完成后,检查a 数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。#include#include int ok110;int main()int n,s,i,find;while(scanf(%d,&n)!=EOF)memset(ok,0,sizeof(ok);for(i=1;i=200;i+)if(!okfind=(i*(i+1)/2)%n)if(find=0)okn=1;else okfind=1;for
7、(s=0,i=1;i=n;i+)s+=oki;for(i=1,find=0;i=n;i+)if(!oki)if(find!=(n-s-1)printf(%d,i);find+;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 42 页 -else printf(%d,i);printf(n);return 0;问题 B:趣味程序设计巧夺偶数时间限制:1 Sec 内存限制:128 MB 提交:174 解决:73 提交 状态 讨论版 题目描述桌子上有25 颗棋子。游戏双方轮流取子,每人每次最少取走一颗棋子,最多可取走3 颗棋子。双方照这样取下去,直到取光所有的棋子。于是双方手中必然一方
8、为偶数,一方为奇数,偶数方为胜者。请编程实现人机游戏。人先走,计算机后走。若游戏结束,则输出“Game over!”。输入输入人取走棋子的个数。输入一次,按一次回车。游戏不止一轮。按下文件结尾符,退出游戏。必须在完成一轮后退出游戏。不得中途退出游戏。输出输出计算机取走的个数,每次输出最优解。样例输入1 1 1 1 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 42 页 -1 1 2 1 3 2 1 3 1 样例输出3 3 3 3 3 3 Game over!2 3 1 2 3 1 Game over!#include int main()int n,sum=25;loop:
9、while(scanf(%d,&n)!=EOF)sum-=n;if(sum=1)printf(1nGame over!n);sum=25;goto loop;if(sum=3|sum=2)printf(1n);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 42 页 -sum-;else if(sum=0)printf(Game over!n);sum=25;goto loop;else printf(%dn,4-n);if(n=1)sum-=3;if(n=2)sum-=2;if(n=3)sum-=1;return 0;问题 C:趣味程序设计五猴分桃时间限制:1 Sec 内存限制
10、:128 MB 提交:186 解决:102 提交 状态 讨论版 题目描述5 只猴子一起摘了1堆桃子。因为太累了,它们商量决定,先睡一觉再分。过了不知多久,1 只猴子来了。它见别的猴子没来,便将这1 堆桃子平均分成5 份,结果多了1 个,就将多的这个吃了,拿走其中的1 堆。又过了不知多久,第 2 只猴子来了。它不知道有1 个同伴已经来过,还以为自己是第1 个到的呢。于是将地上的桃子堆起来,平均分成5 份,发现也多了 1 个,同样吃了这1 个,拿走其中的1 堆。第 3 只、第 4 只、第 5 只猴子都是这样 问这 5 只猴子至少摘了多少个桃子?第5 个猴子走后还剩下多少个桃子?名师资料总结-精品资
11、料欢迎下载-名师精心整理-第 6 页,共 42 页 -输入无输出输出 5 只猴子至少摘了多少个桃子,第5 个猴子走后还剩下多少个桃子。中间用空格隔开。样例输入样例输出3121 1020 提示思路一:“分”假设至少摘了first_num 个桃子,则令first_num 6,7,8,9,10,这样不断的试,如果那个数能按规则(first_num=(first_num-1)/5*4)被 5 只猴子顺利的吃1 个并分 5组,则为所求。思路二:“凑”假设最后剩下last_num 个桃子,则令last_num4,5,6,7,8,9,10,这样不断的试,如果那个数能按规则(last_num%4=0 则 la
12、st_num=last_num/4*5+1)凑 5 次,则为所求。#include#include int main()int first,i,t;for(i=1;i5000;i+=5)first=i;for(t=1;t=5;t+)if(first%5=1)first=(first-1)/5*4;if(t=5)printf(%d%dn,i,first);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 42 页 -else break;/printf(time:%.2lfn,(double)clock()/CLOCKS_PER_SEC);return 0;问题 D:趣味程序设计高次
13、方数时间限制:1 Sec 内存限制:128 MB 提交:559 解决:80 提交 状态 讨论版 题目描述求 13 的 n 次方(12n130000000000)的最后三位数。例如:13 的 13 次方的最后三位数是 253,13 的 20 次方的最后三位数是801。输入有多组测试数据,每组测试数据一行,即整数n。以文件结尾符结束。输出输出 13 的 n 次方的最后三位数样例输入13 20 样例输出253 801 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 42 页 -提示64 位整型用 long long 表示,格式串为%lld#include int fun(long lo
14、ng n)int k=13,t=1;while(n0)if(n%2=1)t=t*k%1000;k=k*k%1000;n=1;return t;int main()long long n;while(scanf(%lld,&n)!=EOF)printf(%03dn,fun(n);return 0;问题E:趣味程序设计借书方案时间限制:1 Sec 内存限制:128 MB 提交:429 解决:154 提交 状态 讨论版 题目描述小明有 n 本新书,要借给A、B、C 三位小朋友。只借一次。若每人每次只能借一本,则可以有多少种不同的借法?输入有多组测试数据,输入整数n(5 n1000),输入到文件结尾符
15、为止。名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 42 页 -输出借法总数。样例输入5 6 7 8 样例输出60 120 210 336#include int main()long long n;while(scanf(%lld,&n)!=EOF)printf(%lldn,n*(n-1)*(n-2);return 0;问题 F:趣味程序设计过桥问题时间限制:1 Sec 内存限制:128 MB 提交:102 解决:19 提交 状态 讨论版 题目描述过桥问题。有 N(N2)个人在晚上需要从X 地到达 Y 地,中间要过一座桥,过桥需要手电筒(而他们只有1 个手电筒),每次最多两个
16、人一起过桥(否则桥会垮)。N个人的过桥时间依次存入数名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 42 页 -组 tN 中,分别为:t0,t1,tN-1。过桥的速度以慢的人为准!注意:手电筒不能丢过桥!问题是:编程求这N 个人过桥所花的最短时间。输入有多组测试数据,每组数据先输入一个人数N,然后输入这N 个人过桥所花的时间。输出输出对应的最短时间。样例输入4 1 2 5 10 4 5 2 10 1 样例输出17 17#include void fun(int*a,int n)int i,j,t,k;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(
17、ajak)k=j;if(i!=k)t=ai;ai=ak;ak=t;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 42 页 -int main()int a100,i,n,time,k;while(scanf(%d,&n)!=EOF)time=0;for(i=0;in;i+)scanf(%d,&ai);fun(a,n);k=n-1;while(1)if(k=a0+ak)time+=(2*a0+ak-1+ak);if(2*a1a0+ak)time+=(a0+2*a1+ak);k-=2;return 0;问题 G:趣味程序设计数制转换时间限制:1 Sec 内存限制:128 MB 提
18、交:265 解决:110 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 42 页 -提交 状态 讨论版 题目描述将任一整数转换为二进制数形式并输出。输入有多行数据,每行输入一十进制数字n(1n2147483647)。输入到文件结尾符为止。输出输出 n 的二进制表示样例输入1 2 3 4 5 6 7 样例输出1 10 11 100 101 110 111#include#include void f(long long num)if(num)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 42 页 -f(num/2);printf(%lld,num%2);int
19、 main(void)long long num;while(scanf(%lld,&num)!=EOF)f(num);putchar(n);return 0;问题 H:趣味程序设计打渔晒网时间限制:1 Sec 内存限制:128 MB 提交:205 解决:28 提交 状态 讨论版 题目描述中国有名俗语叫“三天打鱼两天晒网”。小强从 2000 年 1 月 1 日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是在“打鱼”,还是在“晒网”?输入输入日期,格式是yyyy-mm-dd,例如 2012-01-23。输入到文件结尾符为止。输出如果小强在打鱼,那么输出“He is fishing.”。如
20、果小强子在晒网,那么输出“He is drying nets.”样例输入2000-01-01 2000-01-05 名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 42 页 -样例输出He is fishing.He is drying nets.问题I:趣味程序设计喝酒问题时间限制:1 Sec 内存限制:128 MB 提交:97 解决:30 提交 状态 讨论版 题目描述n 个人同桌吃饭,其中一个是数学家,他出了一道难题:假定桌子上有3 瓶啤酒,将每瓶中的酒平分给几个人喝,但喝各瓶酒的人数是不一样的,不过其中有且只有一个人喝了每一瓶中的酒,且加起来刚好是一瓶,请问喝这3 瓶酒的
21、各有多少人?输入有多组测试数据,每行输入总人数n。输入到文件结尾符为止。输出输出这三杯酒分别被几个人喝,三个数字从小到大排列。如果无解,输出“No solution”。样例输入3 4 10 样例输出No solution No solution 2 3 6 名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 42 页 -问题J:趣味程序设计哥德巴赫猜想时间限制:1 Sec 内存限制:128 MB 提交:216 解决:98 提交 状态 讨论版 题目描述2000 以内的不小于4 的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000 以内的正偶数成立)。输入每行输入一组数据,即
22、2000 以内的正偶数n。输入到文件结尾符为止。输出输出 n 能被分解成的素数,a 和 b。如果不知一组解,输出a 最小的那组解。样例输入4 6 8 10 12 样例输出2 2 3 3 3 5 3 7 5 7#include#include int fun(int n)名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 42 页 -int i;if(n=2)return 1;if(n%2=0)return 0;for(i=3;i=sqrt(n);i+=2)if(n%i=0)return 0;return 1;int main()int n,i,ok;while(scanf(%d,&
23、n)!=EOF)ok=0;for(i=2;i=n/2;i+)if(fun(i)if(fun(n-i)printf(%d%dn,i,n-i);ok=1;if(i!=2)i+;if(ok)break;return 0;问题 K:趣味程序设计打印日历时间限制:1 Sec 内存限制:128 MB 提交:89 解决:8 提交 状态 讨论版 题目描述打印出任意年份的日历。提示:要判断该年份是否是闰年,若是闰年,二月为29 天,名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 42 页 -平年为 28 天。而判断闰年的规则是:如果(该年能被4 除尽且不能被100 除尽)或能被 400 除尽),
24、则该年是闰年。输入年份输出该年 12 个月的日历样例输入2012 样例输出*Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31*Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29*Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8
25、9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31*Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 42 页 -23 24 25 26 27 28 29 30*Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机C语言趣味的程序设计题目百例 2022 计算机 语言 趣味 程序设计 题目
限制150内