路人:怎么样?上次教你的while魔法学会了没有。
吃瓜群众:练习了几个题,都能做出来。师父!师父!我听说循环魔法好像不只一种呢,是不是啊😍
路人:确实是还有两种。分别是:for循环和do-while循环。这样吧,我再教你一个for循环。
吃瓜群众:
路人:我要先考考你,还记得while的咒语(语法)吗?
吃瓜群众:是这样的。
初始化表达式
while (循环条件) {
// 循环体语句
更新表达式
}
路人:下面是for的咒语(语法),你能看出什么不同吗?
C++中的for循环是一种常用的循环结构,它可以重复执行一段代码,直到满足某个条件为止。for循环的语法如下:
for (初始化表达式; 循环条件; 更新表达式) {
// 循环体语句
}
其中,初始化表达式只会在循环开始时执行一次,循环条件会在每次循环开始前被判断,如果为真则执行循环体语句,否则跳出循环,更新表达式会在每次循环结束后执行。
吃瓜群众:好像两个人。
路人:没错,for循环和while循环的语法结构是很像的,并且执行的顺序也是一致的,只是放的位置不太一样。而且for循环也可以把初始化表达式和更新表达式放到和while循环一样的位置,只是一定 一定 一定要写 “;”这个是固定不变的。
设 N 是一个四位数,它的 9 倍恰好是其反序数,求 N 。
反序数就是将整数的数字倒过来形成的整数。例如:1234 的反序数是 4321 。
根据分析的已知,未知按需要定义变量。
//二、数据定义
int i=1000,temp;
无输入。
可以看到,我们在定义变量的时候就已经初始化了for循环语法中的初始化表达式,所以初始化表达式的位置是可以直接空着的。
//四、数据计算
for(;i<10000;i++){
temp=i%10*1000+i/10%10*100+i/100%10*10+i/1000;
if(i*9==temp){
}
}
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:N的9倍恰好是其反序数temp
//未知:N
//关系:N*9=temp
//二、数据定义
int i=1000,temp;
//三、数据输入
//四、数据计算
for(;i<10000;i++){
temp=i%10*1000+i/10%10*100+i/100%10*10+i/1000;
if(i*9==temp){
//五、输出结果
cout<<i<<endl;
}
}
return 0;
}
把整数 3025 从中剪开分为 30 和 25 两个数,此时再将这两数之和平方,计算结果又等于原数。
(30+25)×(30+25)=55×55=3025 ,这样的数叫“雷劈数”。
求所有符合这样条件的四位数。(ab+cd)×(ab+cd)=abcd
根据分析的已知,未知按需要定义变量。
//二、数据定义
int ab,cd;
无输入。
//四、数据计算
for(int i=1000;i<10000;i++){
ab=i/100;
cd=i%100;
if(i==(ab+cd)*(ab+cd)){
}
}
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:四位数
//未知:所有符合雷劈数的四位数
//关系:(ab+cd)×(ab+cd)=abcd
//二、数据定义
int ab,cd;
//三、数据输入
//四、数据计算
for(int i=1000;i<10000;i++){
ab=i/100;
cd=i%100;
if(i==(ab+cd)*(ab+cd)){
//五、输出结果
cout<<i<<endl;
}
}
return 0;
}
根据分析的已知,未知按需要定义变量。
//二、数据定义
int n,sum=0;
从键盘读入整数n。
//三、数据输入
cin>>n;
可以参照 问题二:1056 - 所有不超过1000的数中含有数字3的自然数。
//四、数据计算
for(int i=5;i<=n;i+=5){
if(i%10==5||i/10%10==5||i/100%10==5||i/1000%10==5){
sum++;
}
}
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:1-N的整数
//未知:能被5整除且至少有一位数字是5的所有整数的个数sum
//关系:%5==0 个位=5,十位=5,百位=5,千位=5
//二、数据定义
int n,sum=0;
//三、数据输入
cin>>n;
//四、数据计算
for(int i=5;i<=n;i+=5){
if(i%10==5||i/10%10==5||i/100%10==5||i/1000%10==5){
sum++;
}
}
//五、输出结果
cout<<sum;
return 0;
}
以上就是关于循环结构中for语句的学习内容,难度不高,多多练习即可掌握。
喜欢的朋友可以关注本专栏C++从零基础入门到NOI竞赛,一起学习一起进步。
阅读量:511
点赞量:0
收藏量:0