PTA - 使用函数输出水仙花数(C语言)
程序员文章站
2024-03-05 18:14:01
...
本题需要注意的是:如何在不使用pow的情况下计算乘方。
裁判程序:
#include <stdio.h>
int narcissistic( int number );
void PrintN( int m, int n );
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
return 0;
}
/* 你的代码将被嵌在这里 */
int narcissistic( int number )
{
int remainder,item=1,sum=0,x,i,count=0;
x=number;
while(x)
{
x=x/10;
count++; //计算数字位数
}
x=number;
while(x)
{
remainder=x%10;
for( i=1; i<=count; i++)
{
item*=remainder; //计算乘方
}
sum+=item; //各个位数数字的对应乘方相加
x=x/10;
i=1; //循环结尾不能忘记初始化,否则下一次循环的i就会从count的值开始
item=1;
}
if(sum==number)
{
return 1;
}else
{
return 0;
}
}
void PrintN( int m, int n )
{
m = m+1;
for( m; m<n; m++)
{
if( narcissistic(m)==1 )
printf("%d\n",m);
}
}
下一篇: 甲骨文诺基亚联手移动数据管理