pta编写函数判断水仙花数(py判断水仙花数)

http://www.itjxue.com  2023-03-18 01:12  来源:未知  点击次数: 

编写自定义函数,求水仙花数,并输出

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。

函数接口定义:

int narcissistic(int number);

void PrintN(int m,int n);

函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。

函数PrintN则打印开区间(m,n)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。

例:

#includelt;stdio.hgt;

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;

}

运行:

扩展资料:

方法一、

#includelt;stdio.hgt;

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 count,digit,item,n,sum,ret,k,i;

n=number,count=0;

while(n){//算出number是几位数。

n/=10;

count++;

}

sum=0,n=number;

while(n){

digit=n%10;

item=1;

for(i=0;ilt;count;i++)

item*=digit;

sum+=item;

n/=10;

}

if(sum==number)ret=1;

else ret=0;

return ret;

}

void PrintN(int m,int n){

int i;

for(i=m+1;ilt;n;i++)

if(narcissistic(i))printf("%d\n",i);

}

方法二:

int narcissistic(int number){

int count,sum,temp,ret;

count=0,temp=number;

while(temp){

count++;

temp/=10;

}

sum=0,temp=number;

while(temp){

sum+=pow(temp%10,count);

temp/=10;

}

if(sum==number)ret=1;

else ret=0;

return ret;

}

void PrintN(int m,int n){

int i;

for(i=m+1;ilt;n;i++)

if(narcissistic(i))printf("%d\n",i);

}

编写函数判断一个数字是否是水仙花数。若是水仙花数,函数返回1,否则返回0

按照你的要求,把图中的求水仙花数的程序改为函数调用的形式的C语言程序如下

#includestdio.h

int?isNarcissus(int?a){

?int?b,c,d;

?b=a/100;

?c=(a/10)%10;

?d=a%10;

?if((b*b*b+c*c*c+d*d*d)==a){

??return?1;

?}else{

??return?0;

?}

}

int?main(){

?int?a;

?for(a=100;a1000;a++){

??if(isNarcissus(a)==1){

???printf("%d\n",a);

??}

?}

?return?0;

}

运行结果

153

370

371

407

python使用函数实现水仙花数?

答: 首先要明白水仙花数的定义,它是指一个三位数,它的每个位上的数字的三次幂之和等于它本身。所以问题就转化为我们如何将三位数的个位、十位和百位都表示出来。然后再遍历100~999的每一个数字去判断其是否为水仙花数。具体代码如下所示。

最终的运行结果如下,水仙花数总共有4个,具体如图片所示。

(责任编辑:IT教学网)

更多

推荐Mail服务器文章