循环语句练习程序流程图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、计算1-2+3-4+5……+99-100的值。

2、求1~1000之间可以同时被

3、5、7整除的数字。分析过程:

1、明确判断的区间为[1,1000];

2、对[1,1000]范围内的每一个数字都要进行相同的判

断过程;

3、判断过程:一个数字是否能够同时被3、5、7整除,

如果可以,将该数字输出,否则不操作。

算法步骤:

1、利用循环结构来循环读取[1,1000]区间的每一个数字

for( i )//循环读入[1,1000]内的数字

{

//每读入一个数字,都要进行是否能够

同时被3、5、7整除的判断过程

if( )

{

//输出数字

}

}

2、求解水仙花数。水仙花数是一个三位数,并且该三位

数每个位数上的数字的立方和等于该三位数本身。

分析过程:

1、由概念确定判断数字的取值范围为[100,999];

2、分解每个三位数,得出个、十、百位数字;

3、判断每个三位数的个十百数字立方和是否等于该数字

本身;如果等式为真,输出该三位数,否则不操作。

算法步骤:

1、由分析过程可知每个三位数都要进行相同的分解过

程和判断过程,可以使用循环结构来实现:

for( i )//循环读入[100,999]内数字

{

//1、分解读入的三位数i

ge=…….

shi=……..

bai=………

//2、判断ge3+shi3+bai3==i等式的真假

if(ge3+shi3+bai3==i)

{

//输出该三位数i

}

}

4、假定在银行中存款5000元,按照6.25%的年利率计算,

试过经过多少年后会连本带利翻一番,编程实现。

分析过程:

1、假设今年存款5000元,按6.25%年利率增加,明年是

5000*(1+0.0625)元,后年就是5000*(1+0.0625)2,大后年就是5000*(1+0.0625)3,依次类推;

2、在存款初值为5000元的基础上,每一年增加以后,都

要判断一下是否连本带利翻一番(即当年的存款额是否

大于等于存款初值的2倍),如果判断结果为真,则不

再按年利率增加;

3、题目要求统计出经过多少年会使得2中的判断结果为

真;

算法步骤:

1、存款初值为5000(m),当年存款额(s)为存款初值;

2、当年存款额按照年利率增加,每增加一年,将年数累加

一次,然后判断是否大于等于存款初值的2倍,如果没

有超过,则继续按年利率增加,否则不再增加。

do

{

//1、增加一次存款额

………….

//2、累加一次年数

……………

}while(存款额是否大于等于存款初值的2倍);

5、打印输出前100个自然数中的所有素数。

分析过程:

1、明确素数的概念:在一个大于1的自然数中,除

了1和此数本身外,没法被其他自然数整除。2是

最小的素数,其余偶数均不是素数,1和0既不是

素数也不是合数!

2、由概念可以推导出几个结论:2是最小素数,可以

直接输出;大于2的偶数绝不是素数;对于大于2

的奇数,可以进行是否素数的判定,该判定过程

可以从该数是否只能被1和它本身整除而不能被

其他自然数整除的条件上去进行判定。

算法步骤:

1、直接输出最小素数2

2、排除掉3-100区间范围内的所有偶数

3、针对3-100区间内的奇数去进行判断,因为每一个奇数

都要重复相同的判断过程,所以可以利用一个循环体去进行循环读取奇数,读入奇数以后的判断过程:每次读入一个奇数(假设用i变量表示)以后,只要能够证明该奇数不能被区间[2,i-1]内的所有数字整除(取模运

算结果等于0),就可以说明该奇数是一个素数。该过

程又可以用一个循环结构去描述,所以用第二个循环体去进行整除的判定。

for( i )//循环读入[3-100]内的奇数

{

//判断奇数i是否能被[2,i-1]内的数字整除

for( j )//循环进行i%j==0等式的判断

{

//只要某一次循环时候i%j==0等式为真,

即可结束内层循环,i不是素数;只有当区间内

所有数字进行等式判断都为假时,i是素数!

…………….

}

}

6、计算1!+2!+…+10!的值。(也可以利用单层循环来实

现)

分析过程(以两层循环来实现):

1、单个数字的阶乘如何计算?(利用循环结构进行累乘的

操作)

1!:1*1

2!:2*1

3!:3*2*1

2、单个数字的阶乘计算出结果以后,再将结果进行累加?

(利用循环结构进行累加的操作);

3、先计算阶乘后进行累加,所以两个循环结构存在嵌套关

系,哪个是内层循环,哪个是外层循环?

算法步骤:

1、for( m )//计算单个数字阶乘

{

//累乘操作

}

2、由题目可知累加[1-10]区间的数字的阶乘,可以理解为

该区间数字都要重复1中的计算过程,可以在1的基础上循环读入[1-10]区间内的每一个数字。既然是循环读入,所以可以再利用循环结构来实现。

相关文档
最新文档