编程论坛's Archiver

mondayandff 发表于 2008-4-6 15:27

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

#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  
请问我的程序错在哪里了???????????????????

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.