当前位置 :
求这样一个n位数(>0),它等于其各位数字的阶乘之和.输入位数n,输出所有满足条件的n位数例如,145=1+4+5若不存在这样的n位数,则输出:"Nooutputn".输入:n输出:满足条件的n位数#in
1人问答
问题描述:

求这样一个n位数(>0),它等于其各位数字的阶乘之和.输入位数n,输出所有满足条件的n位数

例如,145=1+4+5若不存在这样的n位数,则输出:"Nooutputn".输入:n输出:满足条件的n位数

#include

main()

{intn,i,k=0,a,b,s,m0,m=1;

scanf("%d",&n);

for(i=1;i=m0;m--)

{for(i=1,s=0;i0;b--)

a=a*b;

s+=a;}

if(s==m){printf("%dn",m);k++;}}

if(k==0)printf("Nooutputn");

}

这个程序是对的,但是输入1的时候,程序是输出21.怎么让其输出的是12

高崇辉回答:
  伪代码:   inputn   intresult=0;(就是所求的数)   首先算出当result最小的阶乘数(比如三位数的话就是120=5!,4就不行了,以此来确定至少有一位要是5),再算出当result最大的阶乘数,(即<999,6!=720.所以任一位都不能大于6!).   求出这些限制条件后,再用枚举,找到一个就打印出来,一个都没找到就打印Nooutput!.应该没什么问题了.   =========   基本算法就是这些了,如果有更好的算法,欢迎指正!:)
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞