我c语言编程·关于S=1!+2!+3!··怎么实现··希望高手帮忙解答···用循环的方式·

要有注释··谢谢··急着要·答案··

#include<stdio.h>
void main()
{
int i,n,s=1,sum=0;//i用于循环。n用于输入,s用于计算每一项阶乘,sum用于装阶乘的和
printf("输入N:");//提示输入n
scanf("%d",&n);//输入n到n变量中
for(i=1;i<=n;i++)//从1开始循环到n结束
{
s*=i;//计算阶乘
sum+=s;//累加每一位数阶乘之和
}
printf("%d",sum);//输出结果
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-11
//本程序在VC2008环境下测试通过
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
const int N = 4;//定义有几个数 可更改
int nMyNum = 0;//用于保存计算结果
int nSorti= 1;//循环变量
int nKeep = 1;//保存n!

for(nSorti = 1; nSorti < N + 1; nSorti++)//运算nSorti从2到N
{
nKeep *= nSorti;//(n-1)!*n
nMyNum += nKeep;//原值+n!
}

printf("%d\n", nMyNum);//打印结果

system("PAUSE");//暂停
return 0;
}

//本程序在VC2008环境下测试通过
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
const int N = 4;//定义有几个数 可更改
int nMyNum = 0;//用于保存计算结果
int nSorti= 1;//循环变量
int nKeep = 1;//保存n!

Label1:
nKeep *= nSorti;//(n-1)!*n
nMyNum += nKeep;//原值+n!
nSorti++;
if(nSorti <= N)
{
goto Label1;//跳转回Label1 最好不要用goto不符合结构化设计 除非你在学嵌入式
}

printf("%d\n", nMyNum);//打印结果

system("PAUSE");//暂停
return 0;
}
第2个回答  2010-04-11
int n,i,j,t,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=2;j<=i;j++)
t=t*j;
sum=sum+t;
}
printf("sum=%d",sum);
第3个回答  2010-04-11
int i,j=1,m,sum=0;
for(i=1;i<m;i++)
{
j=j*i;
sum+=j;
}
return sum;
第4个回答  2010-04-11
#include<stdio.h>
void main()
{
int i,j,sum;
printf("1!+2!+3!+……+10!的值为:");
for(i=1,sum=0,j=1;i<=10;i++)//循环到10!
{
j*=i;//计算i!;
sum+=j;//计算阶乘和
}
printf("%d\n",sum);//输出答案
}
第5个回答  2010-04-11
算法(举例):1!+2!+3!+4!+5!=1+2*(1+3*(1+4*(1+5)))
直接写的,没运行过,不过应该不会错.
#include<stdio.h>
void main()
{
int a,i,s; //s存值
puts("请输入最大的阶乘:"); //不会描述,意思就是如果是题目那个形式的话就输3,推之
scanf("%d",&a);
s=a;
for(i=a;i>0;i--)
s=(1+s)*(i-1);
printf("%d",s);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网