大家都知道水仙花数吧。
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
我们今天研究的仅限于3位的呵。。。【搔头】
那么先上代码:
#include<bits/stdc++.h> using namespace std; int main() { int g,s,b,a; for(a=100;a<=999;a++) { g=a%10%10; s=a/10%10; b=a/100%10; if(a==((g*g*g)+(s*s*s)+(b*b*b))) cout<<a<<' '; } return 0; }
现在,我们来一行一行翻译:
#include<bits/stdc++.h>//万能头文件,还需要翻译?不肥?https://www.cnblogs.com/Kiven5197/p/5745589.html
using namespace std;
int g,s,b,a;//定义g=个位,s=十位,b=百位,a=读入的三位数
for(a=100;a<=999;a++)//从100到9999循环 { g=a%10%10;//个位 s=a/10%10;//十位 b=a/100%10;//百位
if(a==((g*g*g)+(s*s*s)+(b*b*b)))//满足水仙花数的条件时,打印这个数 cout<<a<<' ';
} return 0;//结束程序,不解释 }
这是3位水仙花数解法。非常简单。
小编也只是个蒟蒻啦,各位大佬一定可以做到更高位的水仙花数的解法啦!