*271题
原题传送门:http://oj.tfls.net/p/271
题解:
#include<bits/stdc++.h>
using namespace std;
int cf(int a,int b){//a的b次方
int c=a;
for (int i=1; i<b; i++)//乘
a=a*c;
return a;//返回a的b次方
}
int main(){
for (int n=3; n<=7; n++)//从三位数到七位数
{
int cfn=cf(10,n);
for (int num=cfn/10; num<=cfn; num++)//从n-1位到n位的所有数字遍历
{
int ans=cf(num%10,n)+cf(num/10%10,n)+cf(num/100%10,n)+cf(num/1000%10,n)+cf(num/10000%10,n)+cf(num/100000%10,n);//ans=每一位的n次方和
if (ans==num) cout<<ans<<endl;//如果是水仙花数,输出它
}
}
return 0;
}
说明:就是从100-9999999遍历,计算每一位的n次方,判断是不是水仙花数
标签:10,int,cf,c++,271,num,次方,水仙花 From: https://www.cnblogs.com/TC2105LJY/p/16962289.html