代码拉取完成,页面将自动刷新
微信搜索公众号【IT学长】:
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3^+5^3^+3^3^。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
3
输出样例:
153
370
371
407
代码:
#include<stdio.h>
void fun1(int *m,int *n,int N)
{
int i;
int t1,t2;
t1=t2=1;
for(i=1;i<=N-1;i++)
t1*=10;
for(i=1;i<=N;i++)
t2*=10;
*m=t1;*n=t2-1;
}
int fun2(int n,int N)
{
int i;
int t;
int sum=0;
int tt=n;
while(n)
{
t=1;
int temp=n%10;
for(i=1;i<=N;i++)
{
t*=temp;
}
sum+=t;
n/=10;
}
if(tt==sum) return 1;
else return 0;
}
int main()
{
int N;
scanf("%d",&N);
int m,n;
fun1(&m,&n,N); //找出最小N位数和最大N位数
//printf("%d %d\n",m,n);
int i;
for(i=m;i<=n;i++)
{
int temp=fun2(i,N);
if(temp==1) printf("%d\n",i);
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。