#include<stdio.h>intnarcissistic(int number);voidPrintN(int m,int n);intmain(){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);return0;}intnarcissistic(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; i < count; i++)
item *= digit;
sum += item;
n /=10;}if(sum == number)
ret =1;else
ret =0;return ret;}voidPrintN(int m,int n){int i;for(i = m +1; i < n; i++)if(narcissistic(i))printf("%d\n", i);}
方法二:
intnarcissistic(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;}voidPrintN(int m,int n){int i;for(i = m +1; i < n; i++)if(narcissistic(i))printf("%d\n", i);}