C++嵌套循环结构实例——编程找出所有水仙花数
首先对于水仙花数的解释,直接看链接叭
https://baike.baidu.com/item/水仙花数/2746160?fr=aladdin
分析一:
1.将三位数表示为i , j , k
2.水仙花数:n=i³+j³+k³
3.如何从三位数i , j , k中提取出数字i , j , k?
k=(n/1)%10
j=(n/10)%10
i=(n/100)%10
#include <iostream>
using namespace std;
void main()
{int n,i,j,k;
for(n=100;n<=999;n++)
{i=n/100;//提取百位数
j=(n/10)%10;//提取十位数
k=n%10;//提取个位数
if(n==i*i*i+j*j*j+k*k*k)
cout<<n<<endl;
}
}
分析二:
令水仙花数的百位、十位、个位数字分别为x,y,z。则该三位数的值为100x+10y+z
且x的取值范围为1~9,而y和z的取值范围为0~9
根据水仙花数的要求,只要有100x+10y+z=x³+y³+z³即可
#include <iostream>
using namespace std;
void main()
{
for(int x=1;x<=9;x++)
for(int y=0;y<=9;y++)
for(int z=0;z<=9;z++)
if(x*x*x+y*y*y+z*z*z==100*x+10*y+z)
cout<<(100*x+10*y+z)<<"是水仙花数。\n";
}