for(初始值(执行一次);循环条件;让循环停止的方法){
语句;
}
循环原理:循环条件→语句→让循环停止的方法→循环条件,以此类推!!!
注意:
1、基本结构中,是二个分号隔开的3个语句。
2、注意for循环语句的执行顺序。
3、两个分号隔开的3条语句都可以不写,但两个分号要保留。
eg:
1、
#include<iostream>
using namespace std;
int main(){
/*
第一步:循环所有的4位数(1000-9999)
第二步:拆出每个4位数学反序列
拆出每个数的个、十、百、千,然后求倒数
第三步:判断如果该数的9倍是其反序列再输出。
*/
int i,n,ge,shi,bai,qian;
for(i=1000;i<=9999;i++){
ge=i%10,shi=(i/10)%10,bai=(i/100)%10,qian=i/1000;
n=ge*1000+shi*100+bai*10+qian;
if((i*9)==n){
cout<<i<<endl;
}
}
return 0;
}
2、
#include<iostream>
using namespace std;
int main(){
int n,count=0;
cin>>n;
for(int i=0;i<=n;i++){
if(i%5==0&&((i%10==5||(i/10)%10==5)||(i/100)%10==5||(i/1000)%10==5||i/10000==5)){
//这里要注意括号,考虑运行的优先级。
count++;
}
}
cout<<count<<endl;
return 0;
}
注意:
1、for循环和while循环的应用场景
(1)for循环:如果能够明确循环范围是从m-n,则更适用for循环。
(2)while循环:如果没有明确的循环范围,但有明确的循环条件,更适合用while循环。
3、
#include<iostream>
using namespace std;
int main(){
int n,count;
cin>>n;
while(n%2==0){
n/=2;
count++;
}
cout<<count<<endl;
return 0;
}
4、
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//该题要搞懂题意,输入的值是X,代入算一下即可知道怎么做。
int x,n=1;
double sum=0;
cin>>x;
while(sum<=x){
sum=sum+(1.0/n);
n++;
}
cout<<n-1<<endl;
//n-1是因为跳出循环,会多加1
return 0;
}
5、
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int i=0;
while(i%5!=1||i%6!=5||i%7!=4||i%11!=10){//满足则循环
i++;
}
cout<<i;
return 0;
}
6、
#include<iostream>
using namespace std;
int main(){
/*采用短除法,n%10得到当前的个位,然后n=n/10去掉这个个位
重复这个过程,直到n为0,循环停止。
*/
int n,sum=0;
cin>>n;
while(n!=0){
sum=sum+n%10;
n=n/10;
}
cout<<sum<<endl;
return 0;
}
7、
#include<iostream>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
while(n!=0){
sum=sum*10+n%10;
n=n/10;
}
cout<<sum<<endl;
return 0;
}
8、
#include<iostream>
using namespace std;
int main(){
//100-999范围,自加循环
//拆位ge、shi、bai,调换顺序判断是否相等与%2是否等于0,是既输出换行。
for(int i=100,ge,shi,bai,x;i<=999;i++){
ge=i%10,shi=(i/10)%10,bai=i/100;
x=ge*100+shi*10+bai;
if(x==i&&i%2==0){
cout<<i<<endl;
}
}
return 0;
}
9、
#include<iostream>
using namespace std;
int main(){
//10-1000,i循环判断是否同时被2、3、7整除,输出换行即可
for(int i=10;i<=1000;i++){
if(i%2==0&&i%3==0&&i%7==0){
cout<<i<<endl;
}
}
return 0;
}
10、
#include<iostream>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
for(int i=1,ge,shi,bai;i<=n;i++){
ge=i%10,shi=(i/10)%10,bai=i/100;
if(i%7!=0&&ge!=7&&shi!=7&&bai!=7){
sum=sum+i;
}
}
cout<<sum<<endl;
return 0;
}
11、
#include<iostream>
using namespace std;
int main(){
int i=1,n,ji=0,ou=0;
cin>>n;
for(;i<=n;i++){
if(i%2==0){
ou=ou+i;
}
if(i%2!=0){
ji=ji+i;
}
}
cout<<ji<<endl;
cout<<ou<<endl;
return 0;
}
12、
#include <iostream>
using namespace std;
int main() {
int n, count = 0,sum=0;
cin >> n;
for (int i = 1; i <= n; i++) {
int sum = 0, num = i;
while (num > 0) {
sum += num % 10;
num /= 10;
}
if (sum % 2 != 0 && sum % 5 != 0) {
count++;
}
}
cout << count << endl;
return 0;
}
13、
#include <iostream>
using namespace std;
int main() {
int n,count=0;
cin>>n;
while(n!=1){
if(n%2==1){
n=n*3+1;
}else{
n=n/2;
}
count++;
}
cout<<count<<endl;
return 0;
}
14、
#include <iostream>
using namespace std;
int main() {
int n=0;
while(n%2!=1||n%3!=2||n%5!=4||n%6!=5||n%7!=0){
n++;
}
cout<<n<<endl;
return 0;
}