4、for循环基础知识详解、练习

本文详细介绍了C++中的for和while循环的基本结构、执行顺序以及在不同场景下的使用,包括明确范围的for循环、条件控制的while循环,并通过实例展示了如何在编程中运用这些循环来解决问题。
摘要由CSDN通过智能技术生成

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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值