注册 登录
编程论坛 新人交流区

问题。。。。。。。。。。。急!!!!!!!!!!!!!

mondayandff 发布于 2008-04-06 15:27, 993 次点击
#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  
请问我的程序错在哪里了???????????????????
0 回复
1