c语言精简题目

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.猴子吃桃子:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子第一天共摘了几个桃子#includestdio.hvoidmain(){inti,x=1;for(i=1;i10;i++)x=2*(x+1);printf(“猴子第一天共摘了%d个桃子!\n”,x);}2.鸡兔同笼:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔?#includestdio.hvoidmain(){intchicken,rabit;for(chicken=1;chicken35;chicken++){rabit=35-chicken;if(chicken*2+rabit*4==94)printf(共有%d只鸡,%d只兔子!\n,chicken,rabit);}}3.百钱买百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?#includestdio.hvoidmain(){intcock,hen,chicken;for(cock=1;cock20;cock++)for(hen=1;hen34;hen++){chicken=100-cock-hen;if(cock*5+hen*3+chicken/3.0==100)printf(共有%d只鸡翁,%d只鸡母,%d只鸡雏!\n,cock,hen,chicken);}}4.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?#includestdio.hvoidmain(){intbig,normal,small;for(big=1;big34;big++)for(normal=1;normal50;normal++){small=100-big-normal;if(big*3+normal*2+small/2.0==100)printf(共有%d只大马,%d只中马,%d只小马!\n,big,normal,small);}}5.打印Fibonacci数列(兔子数列)的前n项,每10个换一行。Fibonacci数列中前两项为1,1,以后每一个数都是其前两个数之和。如1,1,2,3,5,8,13,21,34,…。#includestdio.hvoidmain(){intf1=1,f2=1,f,i,n;printf(请输入fibonacci数列的项数n:);scanf(%d,&n);printf(%8d%8d,f1,f2);i=2;while(in){f=f1+f2;printf(%8d,f);i++;if(i%10==0)printf(\n);f1=f2;f2=f;}}6.汉罗塔问题:有三根杆子A,B,C。A杆上有若干碟子;每次移动一块碟子,小的只能叠在大的上面;把所有碟子从A杆全部移到C杆上。#includestdio.h/*函数hanoi:移动n个盘子*/voidhanoi(intn,chara,charb,charc){if(n0){hanoi(n-1,a,c,b);printf(将第%d个盘子从%c杆移动到%c杆\n,n,a,c);hanoi(n-1,b,a,c);}}voidmain(){intm;printf(请输入A杆上的碟子数:);scanf(%d,&m);printf(盘子的移动过程是:\n);hanoi(m,'A','B','C');}7.打印下三角的九九乘法表#includestdio.hvoidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)printf(%d*%d=%-2d,j,i,i*j);printf(\n);}}8.输入n值,打印n行杨辉三角:111121133114641151010511615201561#includestdio.h#defineM20voidmain(){inti,j,n,a­­­;printf(请输入请输入杨辉三角形的行数n(20):);scanf(%d,&n);for(i=0;in;i++){for(j=0;j=i;j++){if(i==j||j==0)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];printf(%4d,a[i][j]);}printf(\n);}}9.输出各种菱形图案:A1ABASSSABCBA22222ABCDCBASSSSSSSABCDEDCBA333333333ABCDCBASSSSSSSABCBA22222ABASSSA1//第一个菱形图案#includestdio.hvoidmain(){charc;inti,j,k,n;printf(请输入菱形图案的行数n:);scanf(%d,&n);for(i=1;i=n;i++){c='A';for(j=1;j=n-i;j++)printf();for(k=1;k=i;k++)printf(%2c,c++);c-=2;for(k=1;k=i-1;k++)printf(%2c,c--);printf(\n);}for(i=n-1;i=1;i--){c='A';for(j=1;j=n-i;j++)printf();for(k=1;k=i;k++)printf(%2c,c++);c-=2;for(k=1;k=i-1;k++)printf(%2c,c--);printf(\n);}}//第二个菱形图案#includestdio.hvoidmain(){charc='S';inti,j,k,n;printf(请输入菱形图案的行数n:);scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=n-i;j++)printf();for(k=1;k=2*i-1;k++)if(i%2)printf(%2d,i/2+1);elseprintf(%2c,c);printf(\n);}for(i=n-1;i=1;i--){for(j=1;j=n-i;j++)printf();for(k=1;k=2*i-1;k++)if(i%2)printf(%2d,i/2+1);elseprintf(%2c,c);printf(\n);}}10.约瑟夫问题:n个人坐一圈,从1到n给每个人编号。从s个人开始报数,数到第m个人,让他出局。然后从出局后下一个人开始报数,同样是第m个人,再让它出局,如此反复,直到剩下一个人。问题求剩下一个人编号是多少。#includestdio.h#defineM100voidmain(){intn,s,m,s1,w,i,j,p­­;printf(请输入参加游戏的总人数n:);scanf(%d,&n);printf(请输入开始报数的人的编号s:);scanf(%d,&s);printf(请输入要玩的数字m:);scanf(%d,&m);//初始化for(i=1;i=n;i++)p[i]=i;s1=s;for(i=n;i=2;i--){s1=(s1+m-1)%i;//有可能超过人数if(s1==0)s1=i;w=p[s1];//w出列for(j=s1;j=i-1;j++)//将剩余编号全部前移p[j]=p[j+1];p[i]=w;//将w保留在p[n]中}//p[n]中保存的是出列次序的逆序,以下循环将次序逆转过来for(i=1;i=n/2;i++){w=p[i];p[i]=p[n-i+1];p[n-i+1]=w;}printf(出列顺序是:);for(i=1;i=n;i++)printf(%2d,p[i]);printf(\n最后一个出列的人是第%d个人\n,p[n]);}11.搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖(小孩不分性别),问有多少男人,多少女人,多少小孩?#includestdio.hvoidmain(){intmen,women,child;for(men=1;men9;men++)for(women=1;women12;women++){child=36-men-women;if(men*4+women*3+child/2.0==36)printf(共有%d个男人,%d个女人,%d个小孩!\n,men,women,child);}}12.爱因斯坦的阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。#includestdio.hvoidmain(){intladders=7;while(ladders%3!=2||ladders%5!=4||ladders%6!=5)ladders+=14;printf(总台阶数是:%d\n,ladders);}13.递增的牛群:若一头小母牛,从第四年开始每年生一头母牛,按些规律,第n年时有多少头母牛?#includestdio.h#defineN100voidmain(){inti,year;inta[N]={1,1,1};printf(请输入年份year:);scanf(%d,&year);if(year4)printf(第一头母牛还没成熟,不能生小牛,只有她自己一头!\n);for(i=3;iyear;i++)a[i]=a[i-1]+a[i-3];printf(经过辛苦的繁殖,目前有了%d头牛\n,a[year-1]);}14.换零钱:将一元钱换成1分、2分、5分、1角、2角、5角的零钱若干,一共有多少种兑换方法?#includestdio.hvoidmain(){intcent1,cent2,cent5,jiao1,jiao2,jiao5,n=0;for(cent1=1;cent1=100;cent1++)for(cent2=1;cent2=50;cent2++)for(cent5=1;cent5=20;cent5++)for(jiao1=1;jiao1=10;jiao1++)for(jiao2=1;jiao2=5;jiao2++)for(jiao5=1;jiao5=2;jiao5++)if(cent1+cent2*2+cent5*5+jiao1*10+jiao2*20+jiao5*50==100)n++;printf(总共有%d种换法!\n,n);}15.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?16.印度国王的奖励:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,让人扛了一袋麦子,但很快用完了,再扛出一袋还是不够,请你为国王算一下总共给达依尔多少小麦?(设1平方米小麦约1.4*108颗)#includestdio.hvoidmain(){doublei,n=1,sum=0,v;for(i=1;i=64;i++){sum+=n;n=n*2;}v=sum/1.4e8;printf(国王总共要给达依尔%.2lf平方米麦子\n,v);}17.水仙花数:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。(例如:1^3+5^3+3^3=153)#includestdio.h#includemath.h#

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功