问题。。。。。。。。。。。急!!!!!!!!!!!!!
#include "stdio.h"#include "math.h"
main()
{
int m,c,s,h=0,n;
scanf("%d",&m);
for(n=pow(10,m-1),c=n;n<pow(10,m);n++)
{
every(n);
if(c==s) printf("%d\n",c);
else h++;
}
if(h==pow(10,m)-c) printf("No output\n");
}
int every(int n)
{
int a[99],i;
for(i=0;;i++)
{
a[i]=n%10;n/=10;
}
jiecheng(a);
}
int jiecheng(int a[])
{
int b[99]={1},j;
for(j=0;;j++)
{
while(a[j])
{
b[j]=b[j]*a[j];a[j]--;
}
}
total(b,j);
}
int total(int b[],int j)
{
int s=0,w;
for(w=0;w<=j;w++)
{
s=s+b[w];
}
return(s);
}
题目是: 6-2. 求等于其各位数字的阶乘之和的正整数
成绩: 10 / 折扣: 0.8
求这样一个 n 位数( >0 ),它等于其各位数字的阶乘之和。输入位数 n ,输出所有满足条件的 n 位数。例如, 145=1 ! +4 ! +5 !若不存在这样的 n 位数,则输出: No output
输入: n
输出: 满足条件的 n 位数
测试输入 期待的输出 时间限制 内存限制
测试用例 0 以文本方式显示 1 3
以文本方式显示 1 145
1秒 64M
请问我的程序错在哪里了???????????????????