循环结构程序设计典型例题.doc

循环结构程序设计典型例题.doc

ID:61764080

大小:76.50 KB

页数:7页

时间:2021-03-19

循环结构程序设计典型例题.doc_第1页
循环结构程序设计典型例题.doc_第2页
循环结构程序设计典型例题.doc_第3页
循环结构程序设计典型例题.doc_第4页
循环结构程序设计典型例题.doc_第5页
资源描述:

《循环结构程序设计典型例题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、循环结构程序设计典型例题例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。算法分析:对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。1.初值i=2,j=3,s=0;2.用n从1到30循环3.s=s+i/j;4.c=i;i=j+1;j=c+j;5.输出s;程序:#includemain(){inti=2,j

2、=3,n,c;floats=0;for(n=1;n<=30;n++){s=s+(float)i/j;c=i;i=j+1;j=c+j;}printf(“%f”,s);}此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。例2:下面这个程序,想想它实现的是什么功能?#includemain(){inti,s=0;for(i=1;i<=100;i++){if(i%5==0)continue;s=s+i;}printf(“%d”,s);}在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出

3、s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。例3:输出n~m中(00,执行第6步,否则执行第9步6.i=x%107.若i值不为5,执行第8步,否则输出a,并执行第9步8.x=x/10,并返回第5步9.返回第2步,察看下一个a程序:#includemain(){longa,x,i,t,n,m;scanf(“%ld%ld”,&n,&m);for(a=n;a<=m;a++

4、)if(a%3==0){x=a;while(x>0){i=x%10;if(i==5){printf(“t%ld”,a);break;}x=x/10;}}}问:能把a%3==0也放到for循环语句的表式2中,写成a<=m&&a%3==0吗?答:不可以!例4:求3-150中所有素数的和。算法分析:1.用变量a从3到150循环,每次值增加12.用变量i从2到a-1循环,每次值增加13.若a%i==0,结束i的循环,执行第4步4.若i==a,把a累加到s上。5.输出s的值注意:此题中执行第4步时有两种情况。第一种:在第3步中发现了满足a%i==0的情况,直接跳出了i的循环,此时的i一定是在2到a-

5、1中间的一个值,而且a不是素数。第二种:一直没有发现满足a%i==0的i,在i==a时,不再满足i循环的执行条件,i循环结束,此时的a是素数!程序:#includemain(){inta,s=0,i;for(a=3;a<=150;a++){for(i=2;i<=a-1;i++)if(a%i==0)break;if(a==i)s=s+a;}printf(“%d”,s)}求素数的方法很多,大同小异。此题可以做一些改动。如:i的值可以是从2取到sqrt(a);可以不用最后察看i的值,而是通过在发现因子时改动标志变量,最后根据标志变量的值判断是否是素数。例5:有一个八层高的灯塔

6、,每层所点灯数都等于上一层的两倍,一共有765盏灯,求塔底灯数。算法分析:此题的关键在于塔顶的灯数,只要知道了塔顶的灯数,就可知道塔底灯数。这里采取试探的方法来求塔顶灯数。设塔顶灯数为x,x的初值从1开始循环,每次值加1。求出相应的灯的总数,总数不为765,继续下一个x的循环,直到某次求得灯总数为765时,结束x的循环,输出此时塔底灯数。1.x从1开始循环,每次值加12.设k初值x,计算每层灯数。设s初值0,累加每层灯数3.i从1到8循环,每次值加14.s=s+k;k=k*2;5.如果s==765,结束x的循环4.s=s+k;k=k*2;程序:#includemain(){

7、intx,s,i,k;for(x=1;;x++){s=0;k=x;for(i=1;i<=8;i++){s=s+k;k=k*2;}if(s==765)break;}printf(“%d”,k/2);}例5:已知a>b>c>0,a、b、c为整数,且a+b+c<100,求满足1/a2+1/b2=1/c2的a、b、c共有多少组?算法分析:这是一道典型的三重嵌套循环的题目。a、b、c都是位于1到99之间整数。编程的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。