欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PTA - 使用函数输出水仙花数(C语言)

程序员文章站 2024-03-05 18:14:01
...

PTA - 使用函数输出水仙花数(C语言)本题需要注意的是:如何在不使用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);
	}
}
相关标签: 编程练习题