标签:
输入格式:
输入在一行中给出一个正整数N(3<=N<=7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:3输出样例:
153 370 371
此题借用他人的算法,十分简短。
#include <iostream>
#include <stdio.h>
#include <math.h>
#include<string>
int main(){
int n;
scanf("%d",&n);
//计算出每个个位数的N次方
int p[10];
for(int i=0;i<10;i++)
{
p[i]=pow(i,n);
//printf("%d\n",p[i]);
}
//遍历N位数
int num;
for(num=pow(10,n-1);num<pow(10,n);num++)
{
//相除得到每位数
int j;//每个位数,存储最低位
int temp=num;
int sum=0;
while(temp!=0)
{
sum+=p[temp%10];
temp=temp/10;
}
if(sum==num)
{
printf("%d\n",sum);
}
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/ligen/p/4246138.html