早教吧作业答案频道 -->其他-->
求这样一个n位数(>0),它等于其各位数字的阶乘之和.输入位数n,输出所有满足条件的n位数例如,145=1+4+5若不存在这样的n位数,则输出:"Nooutput\n".输入:n输出:满足条件的n位数#in
题目详情
求这样一个 n 位数( >0 ),它等于其各位数字的阶乘之和.输入位数 n ,输出所有满足条件的 n 位数
例如,145=1 +4 +5 若不存在这样的 n 位数,则输出:"No output\n".输入:n 输出:满足条件的 n 位数
#include
main()
{int n,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("%d\n",m);k++;}}
if(k==0)printf("No output\n");
}
这个程序是对的,但是输入1的时候,程序是输出 2 1.怎么让其输出的是 1 2
例如,145=1 +4 +5 若不存在这样的 n 位数,则输出:"No output\n".输入:n 输出:满足条件的 n 位数
#include
main()
{int n,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("%d\n",m);k++;}}
if(k==0)printf("No output\n");
}
这个程序是对的,但是输入1的时候,程序是输出 2 1.怎么让其输出的是 1 2
▼优质解答
答案和解析
伪代码:
input n
int result = 0; (就是所求的数)
首先算出当result最小的阶乘数(比如三位数的话就是120 = 5!,4就不行了,以此来确定至少有一位要是5),再算出当result最大的阶乘数,(即<999,6!=720.所以任一位都不能大于6!).
求出这些限制条件后,再用枚举,找到一个就打印出来,一个都没找到就打印No output!.应该没什么问题了.
=========
基本算法就是这些了,如果有更好的算法,欢迎指正!:)
input n
int result = 0; (就是所求的数)
首先算出当result最小的阶乘数(比如三位数的话就是120 = 5!,4就不行了,以此来确定至少有一位要是5),再算出当result最大的阶乘数,(即<999,6!=720.所以任一位都不能大于6!).
求出这些限制条件后,再用枚举,找到一个就打印出来,一个都没找到就打印No output!.应该没什么问题了.
=========
基本算法就是这些了,如果有更好的算法,欢迎指正!:)
看了 求这样一个n位数(>0),它...的网友还看了以下:
1,9分之5乘一个数等于27分之35,这个数的2分之1是多少?2,足球赛门票15元一张,降价后观众 2020-04-09 …
足球场5点开门,但早有人排队等候入场.从第一个观众来到时起,每分来的观众人数一样多.如果开3个入场 2020-04-11 …
表面已被氧化为Na2O的钠快质量为5.4克,把它投入到足量水中,充分反应后,在标准状况下放出H21 2020-05-21 …
表面已被氧化为Na2O的钠快质量为5.4克,把它投入到足量水中,充分反应后,在标准状况下放出H21 2020-05-21 …
将一定量的含杂质5%的石灰石投入到足量的稀盐酸中充分反应后、共收集到标准状况下将一定量的含杂质5% 2020-06-11 …
崂山道士(节选)文言文解释王曰:"每见师行处,墙壁所不能隔,但得此法足矣."道士笑而允之,乃传以诀 2020-06-13 …
用斜线(/)给下面短文断句。(5分)夫缀文者情动而辞发观文者披文以入情沿波讨源虽幽必显世远莫见其面 2020-06-21 …
1.秋竹虚心(),夏荷多丝().2.()笔墨浓,帘外五更().3.吾志所向一往无前,().——孙中 2020-06-22 …
崂山道士?王曰:“每见师行处,隔壁所不能隔,但得此无法足矣.”道士笑而允之,乃传一绝,令自咒毕,呼 2020-07-03 …
说下句天下1、天下兴亡,----------------2、不入虎穴----------.3、宁为 2020-07-28 …