编写程序求S=1!+2!+3!+...+N! (其中N为从键盘输入的任意自然数)。

C编程 谢谢

#include <stdio.h>

void main()
{
int i,j,n,num,sum=0;
printf("输入求阶乘的数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ int num=1;
for (j=1;j<=i;j++)
num=num*j;
sum+=num;
}
printf("%d",sum);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-04-18
#include <stdio.h>

void main()
{
int i,n,num=1;
printf("输入求阶乘的数:\n");
scanf("%d",&n);
for (i=1;i<=n;i++)
num=num*i;
printf("%d",num);

}
注意,不要输入太大的数,不然结果就不对了,要想输入套数,就把int 改成long int吧,不过,还是不能太大
第2个回答  2007-04-20
敢问这个有错么?

#include <stdio.h>

int main( )
{
int a[ 200 ] = { 0 }, sum[ 200 ] = { 0 }, i, j, k = 0, l = 0, p = 0, s, n;
a[ 0 ] = 1;
scanf("%d", &n);
for ( i = 1; i <= n; i++ )
{
for ( j = 0; j <= k; j++ )
{
s = a[ j ] * i + p ;
p = 0;
if ( s > 9999 )
{
a[ j ] = s % 10000;
p = s / 10000;
if ( k == j )
{
k++;
a[ k ] = 0;
}
}
else
a[ j ] = s;
}
if ( l < k ) l = k;
for ( j = 0; j <= l; j++ )
{
s = a[ j ] + sum[ j ] + p;
p = 0;
if ( s > 9999 )
{
sum[ j ] = s % 10000;
p = s / 10000;
if ( l == j )
{
l++;
sum[ l ] = 0;
}
}
else
sum[ j ] = s;
}
}
printf("%d", sum[ l ]);
for ( i = l - 1; i >= 0; i-- )
{
if ( sum[ i ] < 10 ) printf("000");
else if ( sum[ i ] < 100 ) printf("00");
else if ( sum[ i ] < 1000 ) printf("0");
printf("%d", sum[ i ]);
}
return 0;
}
第3个回答  2007-04-19
bob3240324是对的,zxl0714 简直一87
第4个回答  2007-04-18
楼上的讲讲思路

编写程序求S=1!+2!+3!+...+N! (其中N为从键盘输入的任意自然数)。
include <stdio.h> void main(){ int i,j,n,num,sum=0;printf("输入求阶乘的数:\\n");scanf("%d",&n);for(i=1;i<=n;i++){ int num=1;for (j=1;j<=i;j++)num=num*j;sum+=num;} printf("%d",sum);}

C语言 求1!+2!+3!+… +n! , 其中n由键盘输入。
return (num * factorial(num - 1));} int main(){ int i,n;long sum = 1;scanf("%d",&n);for (i = 2;i <= n;++i)sum += factorial(i);printf("%ld\\n",sum);return 0;}

1!+2!+3!+…+n!用c语言循环嵌套编写
要计算1!+2!+3!+...+n!,可以使用循环嵌套的方式。具体实现如下:include <stdio.h>int main() {int n;scanf("%d", &n);int sum = 0;int factorial = 1;for (int i = 1; i <= n; i++) {factorial *= i;sum += factorial;}printf("%d\\n", sum);return 0;} 首先,使...

编制程序完成求1+2+3+...+N的累加和,直到累加到1000,统计被累加的自然数...
1、启动vb6,执行文件-新建工程命令,在弹出的新建工程对话框中选择标准exe文件后点击确定按钮进入窗体界面。2、选择窗体,拖拽周围正方形调整窗体的大小,在属性窗口中设置caption为“递归求和”,并设置startupposition属性值为“屏幕中心”。3、在工具箱窗口中找到frame控件并双击,在窗体上创建一个frame1...

VB 用自定义函数(function),求1!+2!+3!+…+10!并用print显示结果?
debug.print sum End Sub function fact(x as integer) as long if x=1 then fact=1 else fact=x*fact(x-1)end if end function -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 虽然这样写结构清晰,但运算量大,算阶乘的时候一共要乘45次 完全可以改成 Private ...

...语言实现如下程序:进行自然数相加(1+2+3+……+N)。必须利用循环指令...
N 的极限是92681。 以下程序将其赋值 100000 时,它返回的为92681。当你给定的@N 在92681以内时,它会输出自然数累加结果。(程序是用16位的寄存器实现,比32位的寄存器实现要复杂很多 !) CODE SEGMENT ASSUME CS:CODE @N DD 100000 START: PUSH CS POP DS...

1!+2!+3!+…+n!=?自然数乘阶的和怎么求?
要解答自然数乘阶的和,即求 1! + 2! + 3! + ... + n! 的和,我们需借助数学工具。首先,我们引入伽马函数 Γ(x),它定义为对所有正实数 x,满足 Γ(x) = ∫_0^∞ t^(x-1)e^(-t) dt。通过伽马函数,我们可以得到求阶乘部分和的公式。利用等比数列的求和性质,我们知道右侧级数...

用JAVA编写一个求1!+2!+3!+..+10!的程序然后输入三个数升序排列 ,用for...
public static void main (String[] args) { long acc=1,sum=0;int[]arr=new int[3];int i,j;for(i=1;i<=10;i++){ for(j=1;j<=i;j++){ acc*=j;} sum+=acc;acc=1;} System.out.println("1到10的阶乘之和是:"+sum);\/\/以下为输入三个数并排序 Scanner s=new Scanner...

VB程序:求S=1!+2!+3!+4!+5!+6!+7!+8!+……+99!的值是多少?
是一个155位的数值,这个数值在VB的数值类型中,是无法精确存储的。一般算法类型的编程题目,会求这个值的后6位这样的问题,或者使用贪心算法计算阶乘和问题,这类问题通常不会超过10的阶乘值或者整数变量范围。s=0 for i= 1 to 99 for j=1 to i s1=1 s1=s1*j next j s=s+s1 next i ...

...求1.1+2.2+3.3+4.4+……+n.n的和(n是从键盘输入的整数)
int main(){ int n,i=1;printf("输入n:");scanf("%d",&n);double z=0,x=0,t; \/*z存整数部分和,x存小数部分和,最后输出z+x.*\/ while(i<=n){ z+=i;t=i;while(t>=1) t\/=10; \/* 此处初始状态t=i, 循环完后t就变成 0.t 了*\/ x+=t;i++;} printf("总和为:...

相似回答