利用for循环嵌套编写程序,计算1!+2!+3!+……+n!,要求n的值要由键盘输入 一定要用嵌套

谢谢

在win-TC环境中,你所问的算法编译内容如下:

#include "stdio.h"

#include "conio.h"

long cheng(int n)

{

    long M;

    int t;

    if(n==0)

    M=0;

    else if(n==1)

    M=1;

    else M=1;

    for(t=1;t<=n;t++)

    {

         M*=t;

    }

    return(M);

}

 main()

{

    long sum=0;

    int i,n;

        

    printf("Input your number for calculating\n");

    scanf("%d",&n);

    for(i=0;i<=n;i++)

        {

           sum+=cheng(i);

         }

    printf("the result=%ld",sum);

    getch();

}

我刚给你写的,付编译图一张。有图有真相,我输入的n是10,结果是4037913. 

感谢对我回答评论的那个兄台,我之前的答案给看错了。看成1+2+3+……+n=?

请注意我的数据类型,sum和M都是长整型的,还有注意第二个printf中式%ld。如果数据类型不对的话就搞不到大数字。请楼主一定深思。

这下真的有图有真相了。 

还有我利用了函数的嵌套。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-05
利用for循环嵌套,就这样写:
#include<stdio.h>
void main()
{
int n,i,j,t,s=0;
printf("Input n:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
t=1;
for (j=1; j<=i; j++)
{
t*=j;
}
s+=t;
}
printf("sum:%d\n",s);
}
第2个回答  2012-01-05
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long times=0;
cin>>times;
long long result=0;
for(long long i=1;i<=times;i++)
{
long long temp=1;
for(int j=1;j<=i;j++) temp*=j;
result+=temp;
}
cout<<result<<endl;
return 0;
}
//用的long long,不会越界吧~~追问

要用c语言的 嵌套啊

追答

c语言么?那就不能用long long了(因为c++若菜不知道占位符是什么,有关你的平台的)。只要把long ong全改成int,声明扔到main函数第一行,for的时候初始化即可。但是小心int越界。关于long long请baidu
#include
int main()
{
int times,result=0,temp=1,i,j;
scanf("%d",×);
for(i=1;i<=times;i++)
{
temp=1;
for(j=1;j<=i;j++) temp=j*temp;
result=temp+result;
}
printf("%d",result);
return 0;
}