早教吧作业答案频道 -->其他-->
求这样一个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),它...的网友还看了以下:
发现通电螺线管周围出现铁屑排列成的一条条曲线,则A一定可以判断电流方向B无法判断电流方向C若有一个 2020-05-24 …
数学问题(要算式)有一个四位数,他满足下列条件有一个四位数,他满足下列条件:个位的数字的2倍与2的 2020-06-03 …
公务员考试中有这么一个自然数P同时满足除以3余1,除以4余3,除以7余4,求满足这样条件的三位数共 2020-06-18 …
色谱在其它条件不变得情况下,若柱长增加一倍,色谱峰的宽度为原色谱峰宽度的在其它条件不变得情况下, 2020-06-18 …
小华预习“罗马帝国的扩张与文化传播”时,见到罗马谚语“条条大路通罗马”,它主要是说明了()A.罗马 2020-07-08 …
下列有关根的生长和枝条的发育过程的叙述中,错误的是()A.都有分生组织的细胞的分裂B.枝条上的芽能 2020-07-08 …
求一个4位数条件:1,个位+千位=52,个位+十位=33,十位+千位=64,个位+十位+千位=95 2020-07-29 …
下列有关港口建港的优势区位条件的叙述正确的是①大连港是深水避风良港②宁波港处在平原海岸,建港陆域条件 2020-11-04 …
数字分组(NOIP1998初中组复赛第一题)将1,2,...,9共9个数分成三组,分别组成三个三位数 2020-11-06 …
如何说清条条款款ABCD的事情!我现填制一份表格,填表时要求说明填表材料符合文件中的哪些条款,只要求 2020-11-11 …