【C语言】求自幂数

我是人间有格,这是本人写求自幂数代码,一起学习一起进步
如果有更好的方法请多指教,若抬起玉手点赞,本人不胜感激嘻嘻


主函数部分:

#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);
}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注