For循环结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for语句
For循环
for循环的一般形式为: for(表达式1; 表达式2; 表达式3){ 语句块 } 它的执行过程如下: 1) 先求解表达式1。 2) 求解表达式2,若其值为真(非0),则执行循环体, 否则结束循环。 3) 执行完循环体,再求解表达式3。 4) 重复执行步骤 2) 和 3),直到循环结束。 注意:表达式1仅在第一次循环时求解,以后都不会再执 行,可以认为这是一个初始化语句。
For例题1
• 输入整数n,输出1——n之间的偶数和
思路: #include <iostream> 1、枚举1到n之间的每个整数, using namespace std; 2、判断该整数是否为偶数 3、如果为偶数,则累加起来 int main(){
int i,n,m=0; cin>>n; for (i=1;i<=n;i++) if (i%2==0) m+=i; cout<<m;
For习题
• 1、编写一个评分程序,接受用户输入10个选手的得分(0-10分),然 后去掉一个最高分和一个最低分,求出某选手的最后得分(平均分)。 • 2、求2-1000中的守形数(若某数的平方,其低位与该数相等,则称 守形数。如:25的平方等于625,625的低位与25相同,故25是守形 数。)
}
For例题2
• 一个两位数x,将它的个位数字与十位数字对调后 得到一个新数y,此时y恰好比x大36,请编程求出所 有这样的两位数。#include <iostream>
思路: 1、枚举所有的两位数x,从10到99 2、对该两位数进行数位分离组成 一个新数y 3、将新数与原数进行比较 y-x=36 4、如果条件成立,则输出
数就称为是水仙花数。如: 153=1^3+5^3+3^3,所以153是一个水仙花数。求 所有的水仙花数
思路: 1、枚举所有的三位数x,从100到 999,进行数位分离并按要求组成 一个新数y 2、将新数与原数进行比较是否相 等 3、如果条件成立,则输出 #include <iostream> using namespace std; int main(){ int i,a,b,c,d; for(i=100;i<=999;i++){ a=i / 100; b=i /10 % 10; c=i % 10; d=a*a*a+b*b*b+c*c*c; if (d==i) cout<<d<<endl; } }
பைடு நூலகம்
For例题4
• 输入一个整数,判读其是否为素数,如果是则 输出‘YES’,不是则输出‘NO’(不含引号)
思路: 1、素数亦称质数,是指只能被1 和它本身整除的自然数。 2、对于输入整数x,判断其是否 为素数的方法为:枚举2——x-1的 所有自然数i,将x整除i,如果可 以整除,则x不是素数。如果对于 所有的i,x都不能整除,则x是素 数。 #include <iostream> #include<cmath> using namespace std; int main(){ bool flag; int i,a; cin>>a; flag=true; for (i=2;i<=sqrt(a);i++) if (a%i==0) flag=false; if (flag) cout<<"yes"; else cout<<"no"; }
• 3、求菲波拉契数列第n项的值(n不大于30)。菲波拉契数列是这样
的数列: a0=0, a1=1, a2=a1+a0, a3=a2+a1,……,ai=ai -1+ai-2;
如0,1,1,2,3,5,8,13,21,……。要求输出n,输出an的值
For例题
求出1到100之间所有数的和。 #include <iostream> using namespace std; int main(){ int i,m; m=0; for (i=1;i<=100;i++) m=m+i; cout<<m; }
for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条 件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但分 号(;)不能缺省。
using namespace std; int main(){ int i,a,b,c; for(i=10;i<=99;i++){ a=i / 10; b=i % 10; c=b*10+a; if (c-36==i) cout<<i<<endl; } }
For例题3
在自然数中,如果一个三位数等于自身各位数字之立方和,则这个三位
For循环
for循环的一般形式为: for(表达式1; 表达式2; 表达式3){ 语句块 } 它的执行过程如下: 1) 先求解表达式1。 2) 求解表达式2,若其值为真(非0),则执行循环体, 否则结束循环。 3) 执行完循环体,再求解表达式3。 4) 重复执行步骤 2) 和 3),直到循环结束。 注意:表达式1仅在第一次循环时求解,以后都不会再执 行,可以认为这是一个初始化语句。
For例题1
• 输入整数n,输出1——n之间的偶数和
思路: #include <iostream> 1、枚举1到n之间的每个整数, using namespace std; 2、判断该整数是否为偶数 3、如果为偶数,则累加起来 int main(){
int i,n,m=0; cin>>n; for (i=1;i<=n;i++) if (i%2==0) m+=i; cout<<m;
For习题
• 1、编写一个评分程序,接受用户输入10个选手的得分(0-10分),然 后去掉一个最高分和一个最低分,求出某选手的最后得分(平均分)。 • 2、求2-1000中的守形数(若某数的平方,其低位与该数相等,则称 守形数。如:25的平方等于625,625的低位与25相同,故25是守形 数。)
}
For例题2
• 一个两位数x,将它的个位数字与十位数字对调后 得到一个新数y,此时y恰好比x大36,请编程求出所 有这样的两位数。#include <iostream>
思路: 1、枚举所有的两位数x,从10到99 2、对该两位数进行数位分离组成 一个新数y 3、将新数与原数进行比较 y-x=36 4、如果条件成立,则输出
数就称为是水仙花数。如: 153=1^3+5^3+3^3,所以153是一个水仙花数。求 所有的水仙花数
思路: 1、枚举所有的三位数x,从100到 999,进行数位分离并按要求组成 一个新数y 2、将新数与原数进行比较是否相 等 3、如果条件成立,则输出 #include <iostream> using namespace std; int main(){ int i,a,b,c,d; for(i=100;i<=999;i++){ a=i / 100; b=i /10 % 10; c=i % 10; d=a*a*a+b*b*b+c*c*c; if (d==i) cout<<d<<endl; } }
பைடு நூலகம்
For例题4
• 输入一个整数,判读其是否为素数,如果是则 输出‘YES’,不是则输出‘NO’(不含引号)
思路: 1、素数亦称质数,是指只能被1 和它本身整除的自然数。 2、对于输入整数x,判断其是否 为素数的方法为:枚举2——x-1的 所有自然数i,将x整除i,如果可 以整除,则x不是素数。如果对于 所有的i,x都不能整除,则x是素 数。 #include <iostream> #include<cmath> using namespace std; int main(){ bool flag; int i,a; cin>>a; flag=true; for (i=2;i<=sqrt(a);i++) if (a%i==0) flag=false; if (flag) cout<<"yes"; else cout<<"no"; }
• 3、求菲波拉契数列第n项的值(n不大于30)。菲波拉契数列是这样
的数列: a0=0, a1=1, a2=a1+a0, a3=a2+a1,……,ai=ai -1+ai-2;
如0,1,1,2,3,5,8,13,21,……。要求输出n,输出an的值
For例题
求出1到100之间所有数的和。 #include <iostream> using namespace std; int main(){ int i,m; m=0; for (i=1;i<=100;i++) m=m+i; cout<<m; }
for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条 件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但分 号(;)不能缺省。
using namespace std; int main(){ int i,a,b,c; for(i=10;i<=99;i++){ a=i / 10; b=i % 10; c=b*10+a; if (c-36==i) cout<<i<<endl; } }
For例题3
在自然数中,如果一个三位数等于自身各位数字之立方和,则这个三位