水仙花数(练习)

//水仙花数 
#include
int main(){
     
	int n;
	scanf("%d",&n);
	int first=1;
	int i=1;
	while(i<n)//求n位数的第一个数 
	{
     
		first*=10;
		i++;
	}
	i=first;
	//遍历所有n位数 
	while(i<first*10){
     
		int t=i;
		int sum=0;
		do{
     
			int d=t%10;
			t/=10;//分解n位数 
			int p=d;
			int j=1;
			while(j<n){
     
				p*=d;
				j++;//求每位的n次方 
			}
			sum+=p;
		}while(t>0);
		if(sum==i){
     
				printf("%d\n",i);
			}
			i++;
	}
	return 0;
} 

你可能感兴趣的:(C语言练习)