C++零基础入门——10循环进阶


一、枚举法(暴力搜索)

在循环中,我们经常会结合枚举法的思路去解题,这也是一个很基础的算法。

1. 概念

枚举法就是列举出问题所有可能性答案,然后从中一个一个的筛选出符合要求的内容。
(也叫它暴力搜索,在所有可能性中暴力的去搜索正确答案)

2. 优缺点

枚举法依靠遍历,思路简单,易于理解;但是,枚举法通常运算量比较大,解题效率不高。

3. 示例

求解水仙花数:
求出100~999范围内所有的水仙花数。
水仙花数,即为各位数的立方和等于其本身。以153为例:1 * 1 * 1 + 5 * 5 * 5+ 3 * 3 * 3 = 153

示例输出:
              153
              370
              371
              407
解析: 这道题就是一道经典的枚举法求解问题。通过题目分析,可以很明显的知道要想找到100-999之间的所有水仙花数,那么我们答案的可能性就在这100-99之间,故:我们需要做的第一步,就是利用for循环将100-999的数字循环列举出来;第二步,再根据水仙花数的条件进行答案判断。

#include<iostream>
using namespace std;
int main(){
   
   
	for(int i=100;i<=999;i++){
   
    // 列举所有可能:数字100-999
		int a=i%10; // 获取个位数
		int b=i/10%10; // 获取十位数
		int c=i/100%10; // 获取百位数
		if(a*a*a+b*b*b+c*c*c==i){
   
    // 判断是否满足水仙花数条件,满足则输出答案
			cout << i;
		}
	} 
} 

练习一 鸡兔同笼

题目介绍:
    鸡兔同笼是中国古代的数学名题之一:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小汪不秃头~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值