在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。如果数据类型不对的话就搞不到大数字。请楼主一定深思。
这下真的有图有真相了。
还有我利用了函数的嵌套。
#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);
}
#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;
}