计算机C语言趣味的程序设计题目百例.docx
《计算机C语言趣味的程序设计题目百例.docx》由会员分享,可在线阅读,更多相关《计算机C语言趣味的程序设计题目百例.docx(61页珍藏版)》请在冰豆网上搜索。
计算机计算机C语言趣味的程序设计题目百例语言趣味的程序设计题目百例Contest-2011级C语言课程大作业StartTime:
2012-02-1916:
25:
00EndTime:
2012-03-0122:
00:
00PublicCurrentTime:
2012-2-2315:
51:
18Status:
RunningProblemIDTitleY1211ProblemA趣味程序设计狼追兔子Y1212ProblemB趣味程序设计巧夺偶数Y1213ProblemC趣味程序设计五猴分桃Y1214ProblemD趣味程序设计高次方数Y1215ProblemE趣味程序设计借书方案Y1216ProblemF趣味程序设计过桥问题Y1217ProblemG趣味程序设计数制转换1218ProblemH趣味程序设计打渔晒网N1219ProblemI趣味程序设计喝酒问题Y1220ProblemJ趣味程序设计哥德巴赫猜想1221ProblemK趣味程序设计打印日历Y1222ProblemL趣味程序设计抓交通肇事逃逸犯Y1223ProblemM趣味程序设计反序数Y1224ProblemN趣味程序设计新郎新娘1225ProblemO趣味程序设计称重砝码1226ProblemP趣味程序设计求车速Y1227ProblemQ趣味程序设计谁是窃贼Y1228ProblemR趣味程序设计出售金鱼Y1229ProblemS趣味程序设计百钱百鸡Y1230ProblemT趣味程序设计谜语博士1231ProblemU趣味程序设计猜牌术()Y1232ProblemV趣味程序设计一舍罕王的失算1233ProblemW趣大程序设计一怎样存钱利最大1234ProblemX趣味程序设计猜牌术
(二)Y1235ProblemY趣学程序设计一爱因斯坦的Y1236ProblemZ趣味程序设计取火柴游戏1237Problema趣味程序设计平分鱼和筐Y1238Problemb趣味程序设计可逆素数Y1239Problemc趣味程序设计三色球问题Y1240Problemd趣味程序设计抢n游戏写在最前:
本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了.由于能力不足有题目未解决的或者有错误的我会认真听取大家的意见的呵呵有一两个偷了下懒哦提供原题目还有本人自己的解答的源代码。
感谢大家的。
建议问题问题A:
趣味程序设计趣味程序设计狼追兔子狼追兔子时间限制:
1Sec内存限制:
128MB提交:
341解决:
63提交状态讨论版题目描述题目描述一只兔子躲进了n个环形分布的洞的某一个中。
狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。
以后每次多一个洞去找兔子这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?
输入输入有多组测试数据,读取到文件结尾符为止。
每组测试数据输入n(2Wnw100,即洞穴个数。
输入到文件结尾符为止。
输出输出兔子可能藏匿的洞。
如果不止一个,按从小到大的顺序输出。
如果不存在,输出空行。
样例输入样例输入10815样例输出样例输出2479245789111214提提示示用一个数组a10,对应的元素a0,a1,a2a9对应表示10个洞,初值均置1。
通过一个循环用穷举法”找兔子,第n次查找对应第(n1)%10个洞,如果在第(n1)%10个洞中没有找到兔子,因此将数组元素a(n1)%10置0值。
循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
#include#includeintok110;intmain()intn,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;elseokfind=1;for(s=0,i=1;i=n;i+)s+=oki;for(i=1,find=0;i=n;i+)if(!
oki)if(find!
=(n-s-1)elseprintf(n);return0;问题问题B:
趣味程序设计趣味程序设计巧夺偶数巧夺偶数时间限制:
1Sec内存限制:
128MB提交:
174解决:
73提交状态讨论版题目描述题目描述桌子上有25颗棋子。
游戏双方轮流取子,每人每次最少取走一颗棋子,最多可取走3颗棋子。
双方照这样取下去,直到取光所有的棋子。
于是双方手中必然一方为偶数,一方为奇数,偶数方为胜者。
请编程实现人机游戏。
人先走,计算机后走。
若游戏结束,则输出“Gameover!
。
输入输入输入人取走棋子的个数。
输入一次,按一次回车。
游戏不止一轮。
按下文件结尾符,退出游戏。
必须在完成一轮后退出游戏。
不得中途退出游戏。
输出输出输出计算机取走的个数,每次输出最优解。
样例输入样例输入11111112132131样例输出样例输出333333Gameover!
231231Gameover!
#includeintmain()intn,sum=25;loop:
while(scanf(%d,&n)!
=EOF)sum-=n;if(sum=1)printf(1nGameover!
n);sum=25;gotoloop;if(sum=3|sum=2)sum-;elseif(sum=0)printf(Gameover!
n);sum=25;gotoloop;elseprintf(%dn,4-n);if(n=1)sum-=3;if(n=2)sum-=2;if(n=3)sum-=1;return0;问题问题C:
趣味程序设计趣味程序设计五猴分桃五猴分桃时间限制:
1Sec内存限制:
128MB提交:
186解决:
102提交状态讨论版题目描述题目描述5只猴子一起摘了1堆桃子。
因为太累了,它们商量决定,先睡一觉再分。
过了不知多久,1只猴子来了。
它见别的猴子没来,便将这1堆桃子平均分成5份,结果多了1个,就将多的这个吃了,拿走其中的1堆。
又过了不知多久,第2只猴子来了。
它不知道有1个同伴已经来过,还以为自己是第1个到的呢。
于是将地上的桃子堆起来,平均分成5份,发现也多了1个,同样吃了这1个,拿走其中的1堆。
第3只、第4只、第5只猴子都是这样问这5只猴子至少摘了多少个桃子?
第5个猴子走后还剩下多少个桃子?
输入输入无输出输出输出5只猴子至少摘了多少个桃子,第5个猴子走后还剩下多少个桃子。
中间用空格隔开。
样例输入样例输入样例输出样例输出31211020提示提示思路一:
分”假设至少摘了first_num个桃子,则令first_num=6,7,8,9,10,这样不断的试,如果那个数能按规则(first_num=(first_num-1)/5*4)被5只猴子顺利的吃1个并分5组,则为所求。
思路二:
凑”假设最后剩下last_num个桃子,则令last_num=last_num%4=0贝Vlast_num=4,5,6,7,8,9,10,这样不断的试,如果那个数能按规则(last_num/4*5+1)凑5次,则为所求。
#include#includeintmain()intfirst,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)elsebreak;/printf(time:
%.2lfn,(double)clock()/CLOCKS_PER_SEC);return0;问题问题D:
趣味程序设计趣味程序设计高次方数高次方数时间限制:
1Sec内存限制:
128MB提交:
559解决:
80提交状态讨论版题目描述题目描述求13的n次方(12nW130000000000)的最后三位数。
例如:
13的13次方的最后三位数是253,13的20次方的最后三位数是801。
输入输入有多组测试数据,每组测试数据一行,即整数n。
以文件结尾符结束。
输出输出输出13的n次方的最后三位数样例输入样例输入1320样例输出样例输出253801提示提示64位整型用longlong表示,格式串为lld#includeintfun(Ionglongn)intk=13,t=1;while(n0)if(n%2=1)t=t*k%1000;k=k*k%1000;n=1;returnt;intmain()longlongn;while(scanf(%lld,&n)!
=EOF)printf(%03dn,fun(n);return0;问题问题E:
趣味程序设计趣味程序设计借书方案借书方案时间限制:
1Sec内存限制:
128MB提交:
429解决:
154提交状态讨论版题目描述题目描述小明有n本新书,要借给A、B、C三位小朋友。
只借一次。
若每人每次只能借一本,则可以有多少种不同的借法?
输入输入有多组测试数据,输入整数n(5nW1000输入到文件结尾符为止。
输出输出借法总数。
样例输入样例输入5678样例输出样例输出60120210336#includeintmain()longlongn;while(scanf(%lld,&n)!
=EOF)printf(%lldn,n*(n-1)*(n-2);return0;问题问题F:
趣味程序设计趣味程序设计过桥问题过桥问题时间限制:
1Sec内存限制:
128MB提交:
102解决:
19提交状态讨论版题目描述题目描述过桥问题。
有N(N2)个人在晚上需要从X地到达丫地,中间要过一座桥,过桥需要手电筒(而他们只有1个手电筒),每次最多两个人一起过桥(否则桥会垮)。
N个人的过桥时间依次存入数组tN中,分别为:
t0,t1,tN-1。
过桥的速度以慢的人为准!
注意:
手电筒不能丢过桥!
问题是:
编程求这N个人过桥所花的最短时间。
输入输入有多组测试数据,每组数据先输入一个人数N,然后输入这N个人过桥所花的时间。
输出输出输出对应的最短时间。
样例输入样例输入412510452101样例输出样例输出1717#includevoidfun(int*a,intn)inti,j,t,k;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(ajak)k=j;if(i!
=k)t=ai;ai=ak;ak=t;intmain()inta100,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;return0;问题问题G:
趣味程序设计趣味程序设计数制转换数制转换时间限制:
1Sec内存限制:
128MB提交:
265解决:
110提交状态讨论版题目描述题目描述将任一整数转换为二进制数形式并输出。
输入输入有多行数据,每行输入一进制数字n(KnW214748364)。
输入到文件结尾符为止。
输出输出输出n的二进制表示样例输入样例输入1234567样例输出样例输出11011100101110111#include#includevoidf(longlongnum)if(num)f(num/2);printf(%lld,num%2);intmain(void)longlongnum;while(seanf(%lld,&num)!
=EOF)f(num);putchar(n);return0;问题问题H:
趣味程序设计趣味程序设计打渔晒网打渔晒网时间限制:
1Sec内存限制:
128MB提交:
205解决:
28提交状态讨论版题目描述题目描述中国有名俗语叫三天打鱼两天晒网”小强从2000年1月1日起开始三天打鱼两天晒网”,问这个人在以后的某一天中是在打鱼”还是在晒网”输入输入输入日期,格式是yyyy-mm-dd,例如2012-01-23。
输入到文件结尾符为止。
输出输出如果小强在打鱼,那么输出“Heisfishing.。
如果小强子在晒网,那么输出“Heisdryingnets.样例输入样例输入2000-01-012000-01-05样例输出样例输出Heisfishing.Heisdryingnets.问题问题I:
趣味程序设计:
趣味程序设计喝酒问题喝酒问题时间限制:
1Sec内存限制:
128MB提交:
97解决:
30提交状态讨论版题目描述题目描述n个人同桌吃饭,其中一个是数学家,他出了一道难题:
假定桌子上有的酒平分给几个人喝,但喝各瓶酒的人数是不一样的,不过其中有且只有中的酒,且加起来刚好是一瓶,请问喝这3瓶酒的各有多少人?
输入输入有多组测试数据,每行输入总人数n。
输入到文件结尾符为止。
输出输出输出这三杯酒分别被几个人喝,三个数字从小到大排列。
如果无解,输出样例输入样例输入3410样例输出样例输出NosolutionNosolution236问题问题J:
趣味程序设计趣味程序设计哥德巴赫猜想哥德巴赫猜想时间限制:
1Sec内存限制:
128MB提交:
216解决:
98提交状态讨论版题目描述题目描述2000以2000以内的不小于4的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对内的正偶数成立)。
输入输入每行输入一组数据,即2000以内的正偶数n。
输入到文件结尾符为止。
输出输出输出n能被分解成的素数,a和b。
如果不知一组解,输出a最小的那组解。
样例输入样例输入4681012样例输出样例输出2233353757#include#includeintfun(intn)inti;if(n=2)return1;if(n%2=0)return0;for(i=3;i=sqrt(n);i+=2)if(n%i=0)return0;return1;intmain()intn,i,ok;while(scanf(%d,&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;return0;问题问题K:
趣味程序设计趣味程序设计打印日历打印日历时间限制:
1Sec内存限制:
128MB提交:
89解决:
8提交状态讨论版29天,打印出任意年份的日历。
提示:
要判断该年份是否是闰年,若是闰年,二月为平年为28天。
而判断闰年的规则是:
如果(该年能被4除尽且不能被100除尽)被400除尽),则该年是闰年。
输入输入年份输出输出该年12个月的日历样例输入样例输入2012样例输出样例输出*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun1234567891011121314151617181920212223242526272829*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun123456789101112131415161718192021222324252627282930*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun123456789101112131415161718192021222324252627282930匚*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun123456789101112131415161718192021222324252627282930*MonTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031*MonTueWedThuFriSatSun123456789101112131415161718192021222324252627282930*MoinTueWedThuFriSatSun12345678910111213141516171819202122232425262728293031问题问题L:
趣味程序设计趣味程序设计抓交通肇事逃逸犯抓交通肇事逃逸犯时间限制:
1Sec内存限制:
128MB提交:
259解决:
166提交状态讨论版题目描述题目描述一辆卡车违反交通规则,撞人后逃跑,现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:
牌照的前2位数字是相同的;乙说:
牌照的后2位数字是相同的,但与前2位不同;丙是位数学家,他说:
4位的牌照号刚好是一个整数的平方。
请根据以上线索求出牌照号输入输入无输出输出输出满足要求车牌号样例输入样例输入无样例输出样例输出无#includeintmain()printf(7744n);return0;问题问题M:
趣味程序设计趣味程序设计反序数反序数时间限制:
1Sec内存限制:
128MB提交:
331解决:
219提交状态讨论版题目描述题目描述设N是一个四位数,它的9倍恰好是其反序数,求N。
输入输入无输出输出输出满足要求的4位反序数样例输入样例输入无样例输出样例输出无提示提示反序数就是将整数的数字倒过来形成的整数。
例如:
1234的反序数是4321.#includeintmain()inta,b,c,d,i;for(i=1000;i=2000;i+)a=i/1000;b=i/100%10;c=i/10%10;d=i%10;if(i*9=(d*l000+c*100+b*10+a)printf(%dn,i);return0;问题问题N:
趣味程序设计趣味程序设计新郎新娘新郎新娘时间限制:
1Sec内存限制:
128MB提交:
278解决:
97提交状态讨论版题目描述题目描述三对情侣一起举行婚礼,三个新郎为A、B、C,三个新娘为X、Y、Z。
有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:
A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。
这人听后知道他们在开玩笑,全是假话,请编程找出谁将和谁结婚。
输入输入无输出输出输出为一行输出格式为*-*,表示*和*结婚,中间用空格隔开。
样例输入样例输入无样例输出样例输出无#includeintmain()printf(A-ZB-XC-Yn);return0;问题问题O:
趣味程序设计趣味程序设计称重砝码称重砝码时间限制:
1Sec内存限制:
128MB提交:
93解决:
59提交状态讨论版题目描述题目描述一位商人有4块砝码,各砝码重量不同且都是整磅数,而且用这4块砝码可以在天平上称1至40磅之间的任意重量(砝码可以放在天平的任一端),请问这4块砝码各重多少?
输入输入无输出输出输出一行4个数表示4个砝码的重量,中间用空格隔开样例输出样例输出问题问题P:
趣味程序设计趣味程序设计求车速求车速时间限制:
1Sec内存限制:
128MB提交:
72解决:
5提交状态讨论版题目描述题目描述一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为n。
两小时后里程表上出现了一个新的对称数。
问该车的速度是多少?
新的对称数是多少?
输入输入第一行输入t(0t19999),接下来的t行输入一个n(0*10A9);输出输出每一行输出n的下一个对称数m。
样例输入样例输入611199789987123454321999999999221017900971234643211000000001问题问题Q:
趣味程序设计趣味程序设计谁是窃贼谁是窃贼时间限制:
1Sec内存限制:
128MB提交:
295解决:
138提交状态讨论版题目描述题目描述警察审问四名窃贼嫌疑犯。
已知,这四人当中仅有一名是窃贼,还知道这四个人中每人要么是诚实的,要么总是说谎。
他们给警察的回答是:
甲说:
乙没有偷,是丁偷的。
”乙说:
我没有偷,是丙偷的。
”丙说:
甲没有偷,是乙偷的。
”丁说:
我没有偷。
”请根据这四个人的回答判断谁是窃贼。
输入输入无输出输出请根据这四个人的回答判断谁是窃贼,窃贼用数值1表示,不是窃贼用0表示一行输出四个数,中间用空格隔开(按甲,乙,丙,丁的顺序)样例输入样例输入无提示提示假设用A、B、C、D分别代表四个人,变量的值为1代表该人是窃贼,则根据四个人的说法可歹y出4个条件:
B+D=1;B+C=1;A+B=1;A+B+C+D=1。
#includeintma