循环语句练习程序流程图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]区间内的每一个数字。既然是循环读入,所以可以再利用循环结构来实现。