求助,希望高手帮帮小弟
题目是这样的:寻找特殊整数
请编写一个程序寻找一种特殊整数:一个 n 位的正整数等于其各位数字的n次方之和。
例如:407=4×4×4+0×0×0+7×7×7。所以407就是一个特殊数。
输入:
正整数的位数n(n<=6)。
输出:
所有此n位特殊数。每个数占一行。若不存在符合条件的特殊数,则输出提示:“No output.”;若存在,则从小到大进行输出。
说明:
假设输入为4,在4位整数中,有3个4位的特殊数,则输出格式为(输出中的1111、2222和9999并不是4位特殊数,只是格式样例):
1111
2222
9999
这是我写的程序
前面都没什么问题,就是从算数的乘方开始出了问题,请高手看看:
#include<stdio.h>
main()
{
int a,n,s=0,m,t,i,j,k,l,b[10],c[10]={1};
scanf("%d",&n);
for(k=1,a=10;k<n;k++)
{
a*=10;
}
for(i=a/10;i<a;i++)
{
for(t=0,m=a;m>=10;t++)
{
b[t]=(i%m)/(m/10);
m/=10;
for(j=0,s=0;j<n;j++)
{
for(l=0;l<n;l++)
{
c[l]*=b[l];
}
s+=c[j];
}
if(s==i)
printf("%d\n",s);
}
}
}