判断一个数是否为自幂数
如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。
例如:在十进制中,153是一个三位数,各个数位的3次幂之和为1^3+5^3+3^3=153,所以153是十进制中的自幂数。
程序运行不了
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int n,i,digit,sum,j,digit0,m;
printf("输入一个不超过10位的正整数:");
scanf("%d",&n);
sum=0;
for (i=0;n/(int)(pow(10,i)+0.1)!=0;i++)//求位数
digit=i+1;
digit0=digit;
for (j=digit0;j!=0;j--)
m=n/((int)(pow(10,j-1)+0.1));//所在位数数字
n=n-m*((int)(pow(10,j-1)+0.1));
sum=sum+(int)(pow(m,digit0)+0.1);
if (sum==n)
printf("Y");
else
printf("N");
return 0;
}