我是人间有格,这是本人写求自幂数代码,一起学习一起进步
如果有更好的方法请多指教,若抬起玉手点赞,本人不胜感激嘻嘻
主函数部分:
#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 pow1(int n,int i) //求次方函数
{int m=1;if(i==0) return 1;else{for(int k=0;k<i;k++)m*=n;return m;}
}int qiuweishu( int number ) //求位数函数
{int k=4;switch(number){case 10000: return 5;break; case 1000 : return 4;break;case 100 : return 3;break;case 10 : return 2;break;case 1 : return 1;break;}for(int i=4;i>=1;i--) {if(number/pow1(10,i-1)%10!=0) return k;else k--;}
}int narcissistic( int number ) //判断是否为自幂数函数
{int sum = 0,n,s;n = qiuweishu(number);for( int i=1;i<=n;i++ ){s = number/pow1(10,n-i)%10;sum += pow1(s,n);}if(number==sum) return 1;else return 0;
}void PrintN( int m, int n ) //打印函数
{for(int i=m+1;i<=n;i++)if(narcissistic(i)) printf("%d\n",i);
}