




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1100匹马驮货,大马一匹驮3担,中马2担,小马1担,计算大,中,小马的数量。 /* 1.c*100匹马驮货,大马一匹驮3担,中马2担,小马1担,计算大,中,小马的数量。*/#include #include int main() int d,z,x; printf(大、中、小马的个数分别为:n); for(d = 1;d 98;d+) for(z = 1;z 98;z+) for(x = 1;x 98;x+) if(100 = (3 * d + 2 * z + 1 * x) printf(%dt%dt%dn,d,z,x); return 0;2,一辆卡车违反交通规则,撞人逃跑。现场3人目击,但没记住车号,只记下车的特征。甲说:牌照前两位数相同,乙说:牌照后两位数相同。丙是位数学家,他说:四位的车号刚好是一个整数的平方。请求出车号。 /* 2.c* 一辆卡车违反交通规则,撞人逃跑。现场3人目击,但没记住车号,只记下车的特征。* 甲说:牌照前两位数相同,乙说:牌照后两位数相同。* 丙是位数学家,他说:四位的车号刚好是一个整数的平方。请求出车号。*/#include #include int main() int data,g,s,b,q,i; printf(可能的车牌号是:n); for(data = 1000;data 10000;data+) g = data % 10; s = data / 10 % 10; b = data / 100 % 10; q = data / 1000; if(g = s) & (b = q) for(i = 1;i 100;i+) if(i * i) = data) printf(%dn,data); return 0;3,韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1到5报,最末一个士兵报的数为1;按从1到6报,最后一个士兵报的数为5,按从1到7报,最末一个士兵报的数为4;最后在按从1到11报,最末一个士兵报的数为10.你知道韩信至少有多少兵吗? /* 3.c* 韩信有一队兵,他想知道有多少人,便让士兵排队报数:* 按从1到5报,最末一个士兵报的数为1;按从1到6报,最后一个士兵报的数为5,* 按从1到7报,最末一个士兵报的数为4;最后在按从1到11报,最末一个士兵报的数为10.* 你知道韩信至少有多少兵吗?*/#include #include int main() int data,i,j,k,h; printf(韩信拥有的兵总数可能是:n); for(data = 10;data 32767;data+) i = data % 5; j = data % 6; k = data % 7; h = data % 11; if(1 = i) & (5 = j) & (4 = k) & (10 = h) printf(%dn,data); return 0;4,若一个口袋中放12个球,其中3个红色,3个白,6个黑,从中取8个球,问有多少种不同颜色搭配? /* 4.c* 若一个口袋中放12个球,其中3个红色,3个白,6个黑,从中取8个球,问有多少种不同颜色搭配? */#include #include int main() int red,write,black; int flag = 0; printf(可能的搭配方案有:n红t白t黑n); for(red = 0;red 4;red+) for(write = 0;write 4;write+) for(black = 0;black 7;black+) if(8 = (red + write + black) flag = flag + 1; printf(%dt%dt%dn,red,write,black); printf(共%d种.n,flag); return 0;5,鸡兔同笼。已知鸡兔的总头数为 head,总脚数为 feet,编写程序求鸡兔各多少只? #include #define head 20 /总头数为 head #define feet 50 /总脚数为 feet, void main(void) int i=0; /鸡的个数 for(i=0;i =head;i+) if(i*2)+(head-i)*4)=feet) printf(%5d%5d,i,(head-i); / printf(error); 6,小丁和小明小红三个小朋友并排在有灰尘的楼梯上同时从顶上向下走 。小明一步下2阶,小红一步下3阶,小丁一步下4阶,如楼梯顶和楼底均有所有3人的脚印,那么仅有一个人脚印的楼梯最少有几级? /小丁和小明小红三个小朋友并排在有灰尘的楼梯上同时从顶上向下走 /小明一步下2阶,小红一步下3阶,小丁一步下4阶, /如楼梯顶和楼底均有所有3人的脚印, /那么仅有一个人脚印的楼梯最少有几级? #include void main(void) int i,j=0; for(i=1;i 100;i+) if(i%2=0&i%3!=0&i%4!=0)|(i%2!=0&i%3=0&i%4!=0)|(i%2!=0&i%3!=0&i%4=0) printf(%dn%,i); j+; if(i%2=0&i%3=0&i%4=0) break; printf(%d %dn,j,i); 7,在12张卡片中,有3张上面写着3,有3张上面写着5,有3张上面写着7.试问,能否从中抽出5张使他们上面数的和为20? /* 7.c* 在12张卡片中,有3张上面写着3,有3张上面写着5,有3张上面写着7.试问,能否从中抽出5张使他们上面数的和为20? */#include #include int main() int c3,c5,c7; int flag = 0; printf(3,5,7和为20可能的搭配方案有:n(3)t(5)t(7)n); for(c3 = 1;c3 4;c3+) for(c5 = 1;c5 4;c5+) for(c7 = 1;c7 4;c7+) if(5 = (c3 + c5 + c7) if(20 = (c3 * 3 + c5 * 5 + c7 * 7) flag = flag + 1; printf(%dt%dt%dn,c3,c5,c7); printf(共%d种.n,flag); return 0;8,有一对兔子,从出生后第3个月起每月生一对兔子,小兔子长到第三个月后每月又生一对兔子,假如兔子都不死,问一年中可以繁殖成多少对兔子?提示:兔子的规律为数列1,1,2,3,5,8,.,即从第3个月起每个月的兔子使前两个月的兔子之和。 /* 8.c* 有一对兔子,从出生后第3个月起每月生一对兔子,小兔子长到第三个月后每月又生一对兔子,* 假如兔子都不死,问一年中可以繁殖成多少对兔子?提示:兔子的规律为数列1,1,2,3,5,8,.,* 即从第3个月起每个月的兔子使前两个月的兔子之和。 */* 这个是从手册里找到的一个类似的例子,楼主自己改一下 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码:*/#include #include int main() long f1,f2; int i; f1 = 1; f2 = 1; for(i = 1;i = 20;i+) printf(%12ld,%12ld,f1,f2); if(i % 2 = 0) printf(n); /*控制输出,每行四个*/ f1 = f1 + f2; /*前两个月加起来赋值给第三个月*/ f2 = f1 + f2; /*前两个月加起来赋值给第三个月*/ return 0;/* 8.c* 有一对兔子,从出生后第3个月起每月生一对兔子,小兔子长到第三个月后每月又生一对兔子,* 假如兔子都不死,问一年中可以繁殖成多少对兔子?提示:兔子的规律为数列1,1,2,3,5,8,.,* 即从第3个月起每个月的兔子使前两个月的兔子之和。 */#include #include int main() long f1,f2; int i; f1 = 1; f2 = 1; for(i = 1;i = 6;i+) printf(%12ld,%12ld,f1,f2); if(i % 2 = 0) printf(n); /*控制输出,每行四个*/ f1 = f1 + f2; /*前两个月加起来赋值给第三个月*/ f2 = f1 + f2; /*前两个月加起来赋值给第三个月*/ return 0;9,解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶最后剩5阶;每步跨7阶,最后一阶不剩。问这条阶梯至少多少阶?、 /* 9.c* 解爱因斯坦数学题。* 有一条长阶梯,若每步跨2阶,则最后剩1阶;每步跨3阶,最后剩2阶;* 每步跨5阶,最后剩4阶;每步跨6阶最后剩5阶;每步跨7阶,最后一阶不剩。* 问这条阶梯至少多少阶?*/#include #include int main() int stairs = 0; int i2,i3,i5,i6,i7; printf(这条阶梯至少有); for(;stairs+) i2 = stairs % 2; i3 = stairs % 3; i5 = stairs % 5; i6 = stairs % 6; i7 = stairs % 7; if(1 = i2) & (2 = i3) & (4 = i5) & (5 = i6) & (0 = i7) printf(%d阶.n,stairs); break; return 0;10,猴子吃桃问题:猴子第一天摘下若干个桃,当即吃了一半,还不过瘾,有多吃了一个,第二天早上又将剩下的桃吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想在吃时,见剩下一个桃了。求第一天共摘了多少? /* 10.c* 猴子吃桃问题:猴子第一天摘了若干个桃,当即吃了一半,还不过瘾,又多吃了一个,* 第二天早上又将剩下的桃吃掉一半,又多吃了一个。* 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,见剩下一个桃了。* 求第一天共摘了多少?*/#include #include int main() int day,x1,x2; day = 9; x2 = 1; while(day 0) x1 = (x2 + 1) * 2; x2 = x1; day = day - 1; printf(第一天共摘了%d个桃.n,x1); return 0;/* 10.c * 猴子吃桃问题:猴子第一天摘了若干个桃,当即吃了一半,还不过瘾,又多吃了一个, * 第二天早上又将剩下的桃吃掉一半,又多吃了一个。 * 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,见剩下一个桃了。 * 求第一天共摘了多少? */ #include stdio.h void main() int num,i; num=1; for(i=9;i=1;i-) num=(num+1)*2; printf(第一天共摘了%d个n,num); /* 10.c * 猴子吃桃问题:猴子第一天摘了若干个桃,当即吃了一半,还不过瘾,又多吃了一个, * 第二天早上又将剩下的桃吃掉一半,又多吃了一个。 * 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,见剩下一个桃了。 * 求第一天共摘了多少? */ #include stdio.h void main() int num,i; num=1; for(i=9;i=1;i-) num=(num+1)*2; printf(第一天共摘了%d个n,num); 11,把一张100元的人民币兑换成若干20元和10元的人民币,要求两种面值各至少有一张,请编程,统计并输出所有兑换方法。/* 11.c* 把一张100元的人民币兑换成若干20元和10元的人民币,要求两种面值各至少有一张,* 请编程,统计并输出所有兑换方法。*/#include #include int main() int i20,i10; printf(1张100元可兑换20,10元人民币,所有兑换方法如下:n20元t10元n); for(i20 = 1;i20 = (100 / 20);i20+) for(i10 = 1;i10 = (100 / 10);i10+) if(100 = (i20 * 20 + i10 * 10) printf(%dt%dn,i20,i10); return 0; 对于jillnicky的11题答案,个人觉得有些复杂,尤其是两个for循环和一个if条件判断,这样复杂度太高, 不是太理想。 提供我个人的答案,供楼主参考。 jillnicky做了这么多题,很辛苦,也希望以后能和jillnicky多交流,呵呵。 #include int main() /100 yuan int Sum = 100; / N is for 10 , T is for 20 int N = 10; int T = 20; int i; for ( i=1; T*i =0&b=10&b=100&b=1000&b=9999); printf( %dnX %dn-n,a,b); c0=b%10; c1=(b-(c0)%100)/10; c2=(b-(c0)-(c1*10)%1000)/100; c3=(b-(c0)-(c1*10)-(c2*100)/1000; printf( %dn %dn %dn %dn-n %d,a*c0,a*c1,a*c2,a*c3,a*b); *除法函数*/void cfa(int a,int b) int i; if(a=0;i+); if(a-b*i)0) -i; printf(%d%d=%d.%d,a,b,i,a-b*i); /*主函数*/int main() int times,i,num1100=0,num2100=0;char fh=0;printf(please input the times;);scanf(%d,×);for(i=0;itimes;i+) scanf(%d%c%d,&num1i,&fhi,&num2i); getch(); if(fhi!=-)&(fhi!=*)&(fhi!=/)&(fhi!=+) printf(you input date not found mathematical char!n ); printf(you must input this postrue again!n); -i; for(i=0;itimes;i+)switch(fhi)case + : printf( %dn+ %dn-n %dn,num1i,num2i,num1i+num2i);break;case - : printf( %dn- %dn-n %dn,num1i,num2i,num1i+num2i);break;case * : cf(num1i,num2i);break;case / : cfa(num1i,num2i);break;default : printf(you input date not found mathmatical char!n);getch();return 0;15.输入一批学生的成绩,输入-1时结束。求最高分,最低分和平均分/*15.c#include#includeusing namespace std;void main() float maxscore,minscore,cscore,temp,n; n=0; cscore=0; cout请输入成绩(-1 结束):temp; assert(temp=-1&temp=100);/确保输入数据在(-1-100) maxscore=minscore=temp; coutcscore; assert(cscore=-1&cscore=100); coutmaxscore) maxscore=cscore; if(cscoreminscore&cscore!=-1) minscore=cscore; if(cscore!=-1) temp+=cscore; coutn The 最高分 tmaxscore; coutn The 最低分 tminscore; coutn The 平均分 tm;/*15.c#includeusing namespace std;void main()int maxscore,minscore,cscore,temp,n;cscore=0;n=0;cout请输入数据,-1结束temp; minscore=temp; maxscore=temp;while(cscore!=-1) n+; cincscore; if(cscoremaxscore) maxscore=cscore; if(cscoreminscore&cscore!=-1) minscore=cscore; if(cscore!=-1) temp=temp+cscore;cout最高分maxscoreendl;cout最低分minscoreendl;cout平均分(float(temp)/n)endl;/*15.c#includeusing namespace std;int main() int max=-10000,min=10000,sum=0,index=0,temp; do scanf(%d,&temp); if(temp=-1) break; sum +=temp; +index; max = maxtemp?temp:min; while(1); printf(the max score:%dn,max); printf(the min score:%dn,min); printf(the average score:%dn,sum/index); return 1; 16.楼主 有16个有水的瓶子 其中只有一瓶有毒 这时有4只试验老鼠 如何一次性就能判断哪个瓶子有毒? (请不要上网查哦,尽量靠自己想) 10分题 .注: 1个网友回答: 16个瓶子分别标出1到16 4个老鼠标1到4 然后 瓶子一 喂第一 个老鼠 0001 。二 。第二 个老鼠 0010 。三 。一,二。0011 。 。十三 。一二四 个老鼠 1101 最后看哪几个老鼠死了 计算一下就知道了 是一种数字编码 . 注:2编程论坛4个网友回答: 4只老鼠编号03 16个瓶子编号015 0 0 0 0 - 瓶0不给鼠 0 0 0 1 - 瓶1 给鼠0 0 0 1 0 - 瓶2 给鼠1 0 0 1 1 - 瓶3 给鼠0和鼠1 0 1 0 0 - 瓶4 给鼠2 . 1 1 0 1 - 瓶14 给鼠0和鼠2和鼠3 1 1 1 1 - 瓶15 给鼠0和鼠1和鼠2和鼠3 最后看哪几只倒霉的老鼠死掉,结果对应015中的哪个 17.在爱尔兰守神节那天,举行每年一度的庆祝游戏,指挥者若将乐队排成10人、9人、8人、7人、6人、5人、4人、3人和2人时,最后的一排总是缺少一个人,那些人想这个位置大概是给数月前死去的乐队成员凯西还留着位置。指挥者见到总缺一人恼火了,叫大家排成一列纵队前进。假定人数不超过7000人,那么乐队究竟有多少人?/17.cmain() int i,j; for (i=9;i =2;j-) /*模拟排队过程*/ if (i+1)%j!=0) break; /*不满足条件则重新取值*/ if (j=1) /*已满足条件*/ printf( 乐队共有%d人。 ,i); exit(0); 题眼就是求出210的最小公倍数,然后减一。 模拟排队的算法是可行的,但不是最优的。#include int od(int x,int n) /x是否能被n整除,是返回1,否返回0 if (x%n) return 0; return 1; int gbs(int a,int n) /求an内所有元素的最小公倍数 int i,j,k,o,m=0; int b20,c100; for (i=0;in;i+) if(mai) m=ai; bi=ai; j=2; o=0; while (j=m) k=0; for (i=0;i1) break; if(k1) co+=j; for (i=0;in;i+) if (od(bi,j) bi=bi/j; m=0; for (i=0;in;i+) if(mbi) m=bi; else j+; k=1; for(i=0;io;i+) k*=ci; for (i=0;in;i+) k*=bi; return k; main() int a10; for(int i=1;i=10;i+) ai-1=i; printf(count=%dn,gbs(a,10)-1); getchar(); return 0; 调试通过的程序代码如下:#includemain()inti;for(i=9;i7000;i+=2)if(i%10=9&i%9=8&i%8=7&i%7=6&i%6=5&i%5=4&i%4=3&i%3=2)printf(%dn,i);上面的程序运行结果如下:25195039这个问题还是比较简单的,思路如下:首先要写一个判断程序,判断当前的正整数是否除210都缺1,然后从0到7000依次判断,不断的调用这个函数,如果成功就输出人数并跳出循环。代码如下:#includeint Que(int i,int n) int flag=1; for(int j=2;j=n;j+) if(i+1)%j) flag=0; break; return flag;void main() for(int i=0;i7000;i+) if(Que(i,10) cout人数为:iendl; break; 10的倍数减一,最后一位必定为9,所以从9开始每次加10,然后再验证i+1同时是9-2的倍数,都满足则ok 楼主你的方法不见得最简单!如果限制不是7000,而是更大。那你的效率会越来越低!试试我的!#include#includevoid main() int minNum; int sum = 2; /sum表示前面N个数的最小公倍数,初始为2的公倍数,即为2 for(int i =3; ii?i:sum; for(int k=minNum; k1; k-) if(sum%k=0 & i%k=0) /取两个数的最大公约数 break; sum = sum * i / k; /两个数的乘机除以最大公约数=两个数的最小公倍数 while(sum7000) printf(result: %dn, sum-1); sum *= 2; /以2的倍数增加,小于7000继续循环 很简单,写一个暴力枚举。但注意一下细节可以省很多时间:1 循环每次增10,因为最后一位一定是9.2 无需判断2,3,4,因为之前已经判断了6,8;6,8分别是3和2,4的倍数。#includeusing namespace std;int main()for(int i=19;i=6999;)if(i+1)%9=0&(i+1)%8=0&(i+1)%7=0&(i+1)%6=0&(i+1)%5=0) couti ; i+=10; 趣味c语言编程100例(一)2007-04-18 17:17经典c程序100例=1-10【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码:main()int i,j,k;printf(n);for(i=1;i5;i+)*以下为三重循环*/for(j=1;j5;j+)for (k=1;k5;k+)if (i!=k&i!=j&j!=k) /*确保i、j、k三位互不相同*/printf(%d,%d,%dn,i,j,k);=【程序2】题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2.程序源代码:main()long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(%ld,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i=100000)bonus=i*0.1;else if(i=200000)bonus=bonus1+(i-100000)*0.075;else if(i=400000)bonus=bonus2+(i-200000)*0.05;else if(i=600000)bonus=bonus4+(i-400000)*0.03;else if(i=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能语音财务分析工具创新创业项目商业计划书
- 智能通风算法创新创业项目商业计划书
- 农作物保险服务创新创业项目商业计划书
- 量子隧道检测装置创新创业项目商业计划书
- 智能招聘系统创新创业项目商业计划书
- 2025年线下演出市场复苏后演出市场政策环境与市场机遇研究报告
- 2025年环境影响评价公众参与机制优化与绿色产业集聚区建设研究
- 2025年无人机物流配送在物流行业物流配送服务创新中的应用报告
- 2025年沉浸式戏剧剧本创作与市场推广策略研究报告
- 2025年海上风力发电场运维信息化平台建设与运维报告
- 【课件】2025届高三生物一轮复习备考策略研讨
- 中级会计师《经济法》历年真题及答案
- 新疆城市绿地养护管理标准
- 高职院校高水平现代物流管理专业群建设方案(现代物流管理专业群)
- 汉语言文学毕业设计开题报告范文
- 爱自己爱生命主题班会课件
- 国家职业技术技能标准 6-25-02-06 半导体分立器件和集成电路装调工 人社厅发20199号
- 景观设计投标书模板
- 室内消火栓使用培训课件
- 2015-2023年注册会计师考试《会计》真题合集(含答案及解析)共10套
- 幼儿园卫生保健新生家长会课件
评论
0/150
提交评论