C++循环也有很多中种,如for循环和while循环,下面我就和大家介绍一下这两种循环的作用和使用方法。
一. for循环
什么是for循环?
for循环是一种常见的编程语言中的循环语句,而这种循环语句由循环体和循环的条件组成,简单归纳一下表达式: for (定义初始变量 ; 循环条件 ; 变量变化)
实例
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n=5, sum=0;
for(int i=1;i<=n;i++)
{
sum++;
}
cout<<sum<<endl;
return 0;
}
输出结果:5
二. while循环
只要括号里给定的条件为真,while 循环语句会重复执行一个目标语句。
实例
#include <iostream>
using namespace std;
int main ()
{
int n = 10;
while( n < 20 )
{
cout << "n 的值:" << n << endl;
n++;
}
return 0;
}
运行结果 :
n 的值: 10 n 的值: 11 n 的值: 12 n 的值: 13 n 的值: 14 n 的值: 15 n 的值: 16 n 的值: 17 n 的值: 18 n 的值: 19
三. do-while循环
do...while 循环是在循环的尾部检查它的条件。 do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环
实例
#include <iostream>
using namespace std;
int main ()
{
int a = 1;
do
{
cout << a << endl;
a++;
}while( a < 10 );
return 0;
}
运行结果 :
1 2 3 4 5 6 7 8 9
四. 嵌套
在C语言中,if-else、while、do-while、for 都可以相互嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,或者 for 里面有 while,while 里面有 if-else,这都是允许的。
实例
#include<iostream>
using namespace std;
bool a[1001];//在数组被定义为布尔变量时初始值都为零
int main()
{
//埃氏筛
//质数的倍数一定不是质数
//所以只要从最小的数开始对质数的倍数进行标记,就可以找出质数
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
if(a[i]==1)//“0”代表是质数“1”代表不是
{
continue;//意思是不进行下面的操作,直接进入新的循环
}
cout<<i<<endl;
for(int j=i;i*j<=n;j++)
{
a[i*j]=1;
}
}
return 0;
}
如果输入5的话
运行结果 :
2 3 5
来做一些练习吧!
一. for循环求和
【题目描述】
利用for循环。计算输出1+2+3+...+n的和。
【输入】
输入n。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
55
二. 第几项
【题目描述】
对于正整数n,m,求s=1+2+3……+n,当加到第几项时,s的值会超过m?
【输入】
输入m。
【输出】
输出n。
【输入样例】
1000
【输出样例】
45
【提示】
【数据范围】
对于全部数据:1≤m≤40000
三. 末两位数
【题目描述】
求n个1992的乘积的末两位数是多少?
【输入】
输入n。
【输出】
如题述的末两位数。
【输入样例】
3
【输出样例】
88
【提示】
【数据范围】
对于所有数据:n<2000。
四. 阶乘和
【题目描述】
求 S=1!+2!+3!+....+n!
【输入】
输入正整数n。
【输出】
输出s。
【输入样例】
3
【输出样例】
9
【提示】
【数据范围】
对于所有数据:1≤n≤10。
五. 阶乘之和
【题目描述】
输入n,计算S=1!+2!+3!+…+n!的末66位(不含前导0)。n≤10六次方, n!表示前n个正整数之积。
【输入】
输入n。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
37913
【提示】
【数据范围】
对于所有数据,1≤n≤999999。
答案
一.
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int sum = 0;
for(int i = 1; i<=n;i++)//for循环
{
sum += i;//"+="的意思是把i里的值累加到c里
}
cout<<sum;
return 0;
}
二.
#include<iostream>
using namespace std;
int main()
{
int m;
cin>>m;
int s=0,n=0;
while(s<=m)
{
n++;
s+=n;
}
cout<<n<<endl;
return 0;
}
三.
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int i=1;
int ans=1;
do
{
ans=ans*1992%100;
i++;
}while(i<=n);
cout<<ans<<endl;
return 0;
}
四.
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int S=0;
for(int i=1;i<=n;i++)
{
int s=1;
for(int j=1;j<=i;j++)
{
s*=j;
}
S+=s;
}
cout<<S<<endl;
return 0;
}
五.
#include<iostream>
using namespace std;
int main()
{
const int N=1e6;//const int 常变量
int n;
cin>>n;
long long S=0,s=1;
for(int i=1;i<=n;i++)
{
s=s*i%N;
S=(S+s)%N;
}
cout<<S<<endl;
return 0;
}
你都做对了吗?
如果你能做对第一道题的话,说明你已经初步掌握了for循环,如果你能做对第二道题的话,说明你已经初步掌握了while循环,如果你能做对第三道题,说明你已经初步掌握了do whole循环,如果你能做对第四道题,说明你已基本掌握了嵌套循环,如果你还能做对第五道题,说明你已经熟练的掌握了这些技能,你可以开启下一章的学习