猴子第一天摘了若干个桃子.docx

上传人:pu****.1 文档编号:546653475 上传时间:2023-01-23 格式:DOCX 页数:7 大小:16.05KB
返回 下载 相关 举报
猴子第一天摘了若干个桃子.docx_第1页
第1页 / 共7页
猴子第一天摘了若干个桃子.docx_第2页
第2页 / 共7页
猴子第一天摘了若干个桃子.docx_第3页
第3页 / 共7页
猴子第一天摘了若干个桃子.docx_第4页
第4页 / 共7页
猴子第一天摘了若干个桃子.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《猴子第一天摘了若干个桃子.docx》由会员分享,可在线阅读,更多相关《猴子第一天摘了若干个桃子.docx(7页珍藏版)》请在金锄头文库上搜索。

1、猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?分析1) 设x1为前一天桃子数,设x2为第二天桃子数, 则: x2=x1/2-1, x1=(x2+1)*2 x3=x2/2-1, x2=(x3+1)*2 以此类推: x前=(x后+1)*22) 从第10天可以类推到第1天,是一个循环过程。程序如下:1. #include 2. #include 3.4. int main() 5. int day, x1, x2; 6. day=9

2、; 7. x2=1; 8. while(day0) 9. x1=(x2+1)*2; / 第一天的桃子数是第2天桃子数加1后的2倍 10. x2=x1; 11. day-; 12. 13. printf(the total is %dn,x1);14. 15. return 0;16. 运行结果:the total is 15343对情侣参加婚礼,3个新郞为A、B、C,3个新娘为X、Y、Z,有人不知道谁和谁结婚,于是询问了6位新人中的3位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C; C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。算法分析将A、B、

3、C这3人用 1、2、3 表示,将X和A结婚表示为“X=1”,将Y不与A结婚表示为“Y!=1”。按照题目中的叙述可以写出表达式: x!=1 A不与X结婚 x!=3 X的未婚夫不是C z!=3 C不与Z结婚题意还隐含着X、Y、Z这3个新娘不能结为配偶,则有:x!=y 且x!=z且y!=z,穷举以上所有可能的情况,代入上述表达式中进行推理运算,若假设的情况使上述表达式的结果均为真,则假设情况就是正确的结果。根据算法分析,可以利用计算机程序对这些情况进行穷举,然后得出正确的结果。根据算法分析,该问题的程序实现如下:1. #include 2.3. void Marry(void);4.5. int m

4、ain()6. Marry();7.8. return 0;9. 10.11. void Marry()12. int x, y, z;13. for (x=1;x=3;x+) /穷举x的全部可能配偶14. for (y=1;y=3;y+) /穷举y的全部可能配偶15. for(z=1;z=3;z+) /穷举z的全部可能配偶16. if (x!=1 & x!=3 & z!=3 & x!=y & x!=z & y!=z) /判断配偶是否满足题意17. printf (X和%c结婚n, A+x-1); /打印判断结果18. printf (Y和%c结婚n, A+y-1);19. printf (Z

5、和%c结婚n, A+z-1);20. 21. 运行结果:X和B结婚Y和C结婚Z和A结婚怎么用循环输出以下图形: * * * * * *main()int i,j,k;for(i=0;i=3;i+) for(j=0;j=2-i;j+) printf( ); for(k=0;k=2*i;k+) printf(*); printf(n); for(i=0;i=2;i+) for(j=0;j=i;j+) printf( ); for(k=0;k=4-2*i;k+) printf(*); printf(n); 打印菱形#includestdio.h int main(void) int i,j,k; f

6、or(i=0;i=3;i+) / 循环4次,打出前4行 for(j=0;j=2-i;j+)/设定每行*前面的空格,每行都是2-i个 printf( ); for(k=0;k=2*i;k+)/循环打出2*i-1个*号, printf(*); printf(n); /打完一行后换行 for(i=0;i=2;i+) /循环3次,打出后3行 for(j=0;j=i;j+)/设定每行*前面的空格,每行都是i个 printf( ); for(k=0;k=4-2*i;k+)/循环打出2*(2-i)个*号 printf(*); printf(n); /打完一行后换行 return 0;九九乘法表共9行9列,重

7、点考察for循环的掌握情况。下面给出了输出完整乘法表、右上、右下、左上、左下乘法表的代码。【代码一】输出完整的三角形:#include int main() int i,j; / i, j控制行或列 for(i=1;i=9;i+) for(j=1;j=9;j+) / %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐 / t为tab缩进 printf(%d*%d=%2dt, i, j, i*j); printf(n); return 0;运行结果:1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 92*1

8、= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=183*1= 3 3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=274*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=365*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=456*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48

9、 6*9=547*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=638*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=729*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81【代码二】输出右上三角形和左上三角形:#include int main() int i,j; for(i=1;i=9;i+) for(j=1;j=9;j+) if(ji) /打印八个空格,去掉空格就是左上三角形

10、printf( ); else printf(%d*%d=%2d ,i,j,i*j); printf(n); return 0;运行结果:1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 5*5=25 5*6=30 5*7=35

11、5*8=40 5*9=45 6*6=36 6*7=42 6*8=48 6*9=54 7*7=49 7*8=56 7*9=63 8*8=64 8*9=72 9*9=81去掉八个空格后的运行结果:1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 92*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=183*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=274*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=365*5=25 5*6=30 5*7=35 5*8=40 5*9=456*6=36 6*7=42 6*8=48 6*9=547*7=49 7*8=56 7*9=638*8=64 8*9=729*9=81【代码三】输出右下和左下三角形:#include int main() int i,j,n; for(i=1;i=9;i+) / 将下面的for循环注释掉,就输出左下三角形

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号