重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用for循环计算1~100的阶乘,将1~100的阶乘累加到sum中就是所求。
青海ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
#includestdio.h
void main()
{
int i;
double t=1,sum=0; //由于100的阶乘int和long int都放不下.所以用double.
for(i=1;i=100;i++) //从1循环到100.
{
t = t * i; //计算1~100的阶乘.
sum = sum + t; //将1~100的阶乘累加到sum中.
}
printf("%.0f\n",sum); //输出sum.
}
利用for循环计算1~100的阶乘,将1~100的阶乘累加到sum中就是所求。
法/步骤
第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#includestdio.h
第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环
第三步、就是把sum初始化,为1.千万不要为0,保证后面的结果不出问题。
第四步、就是输入一个n,用来求n的阶乘,别忘了在前面提示一下。
第五步、就是利用for循环来求阶乘。
第六步、就是调用printf(:);函数来输出阶乘结果。
拓展资料
定义
n!=1×2×3...xn
n!=X×(X-1)×(X-2)...×1
1751年,欧拉以大写字母M表示m阶乘 M=1x2x3...x...m
1799年,鲁非尼在他出版的方程论著述中,则以小写字母π表示m阶乘。而在1813年,高斯则以Π(n)来表示n阶乘。而用来表示n阶乘的方法起源于英国,但仍未能确定始创人是谁。直至1827年,由于雅莱特的建议而得到流行,现在有时也会以这个符号作为阶乘符号。
当n较大时,直接计算n!变得不可能,这时可通过斯特灵(Stirling)公式计算近似算或取得大小范围。
1 #include stdio.h
2 int main()
3 {
4 int i=0;
5 long temp=1;
6 long sum=0;
7 for(i=1;i=20;i++)
8 {
9 temp*=i;
10 sum+=temp;
11 }
12 printf("sum=%ld\n",sum);
13 return 0;
14 }
___________________
cl之后,执行:
____________________
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
baidu.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:baidu.exe
baidu.obj
sum=268040729
请按 ENTER 或其它命令继续
_________________
to 楼上:
你的for里边的sum1每次重新从1开始算,很浪费的,直接用上一次的结果就行.
用C语言怎样求阶乘之和? 思路 编个函数求n的阶乘的
递归方法
int f(int n){
if(n==1) return 1;
else return n*f(n-1);
}
再在主方法里面编个循环求阶乘之和
int sum=0;
for(i=1;i=n;i++){
sum=sum+f(i);
}
怎样用C语言求500000的阶乘?
先写两个大数相乘的函数,为了提高效率,定义的数组每个存9位,一个个乘时间肯定是不够的,最好这样比如说先求250 000个积,再用这些积求125 000个积,。。。用空间换取时间
就差不多了
C语言用"for"怎么算1~20!阶乘之和啊?
回答的都很好~
c语言:1到100的阶乘之和,100用N输入
#include stdio.h
#include stdlib.h
#define MAX 200
int f[MAX]={0},sum[MAX]={0};大整数,每个int存一个十进制数字,从低位到高位
void main(void)
{
int i,j,n;
f[0]=1;
printf("Input N: ");
scanf("%d",n);输入N
for(j=1;j=n;j++)
{
calc factorial,每位乘j
for(i=0;i200;i++)
f[i]*=j;
进位
for(i=0;i199;i++)
{
f[i+1]+=f[i]/10;
f[i]%=10;
}
add to sum
for(i=0;i200;i++)
sum[i]+=f[i];
sum进位
for(i=0;i199;i++)
{
sum[i+1]+=sum[i]/10;
sum[i]%=10;
}
}
从最高位开始输出
先找到最高位
printf("\n\nThe result is:\n");
i=199;
while(sum[i]==0)
i--;
while(i=0)
printf("%d",sum[i--]);
system("pause");
}
用c语言怎样编1到10的阶乘和
用循环
int sum=1;
for(int i=1;i=10;i++)
sum=sum*i;
或者用递归函数,可能你还没有学
C语言怎么求0 2 4 6 .2n的阶乘之和啊
#include stdio.h求n!的值int func(int n){ if(n == 0 || n==1) return 1; else return n*func(n-1);}int main(){ int n,i,sum=0; printf("输入n的值: "); scanf("%d",n); if(n=0) { printf("Input Error!\n"); return -1; } for(i=0;i=n;i++) { sum+=func(2*i); } printf("0!+2!+4!+...+(2n)!= %d\n",sum); return 0;} 示例运行结果:
输入n的值: 3
0!+2!+4!+...+(2n)!= 747
输入n的值: 2
0!+2!+4!+...+(2n)!= 27
c语言程序设计求一的阶乘,三的阶乘,五的阶乘之和
#include stdio.hint fac(int n);int main(){ int sum = 0; sum = fac(1) + fac(3) + fac(5); printf("%d",sum); return 0;}int fac(int n){ int i = 0; int sum = 0; for(; i=n; i++) sum += i; return sum;}
帮我用c语言编个求两个阶乘之和的程序
int GetN(int x)
{
if(x=1)
return x;
else
return x*GetN(--X);
}
main()
{
int a,b;
Scanf("%d",a);
Scanf("%d",%b);
printf("%d",GetN(a)+GetN(b));
}
c语言阶乘用循环句两个for怎样求和?
输入以下程序可实现两个for求和:
#includestdio.h
void main()
{
int sum=0,n,m=1,i,j;
scanf("%d",n);
for(i=1;i=n;i++)
{
for(j=1,m=1;j=i;j++)
m*=j;
sum+=m;
}
printf("n的阶乘=%d\n",sum);
}
急求C语言阶乘的和
#include "stdio.h"
main()
{
int i,j,sum1,sum=0,n;
printf("请输入n:\n");
scanf("%d",n);
for(i=1;i=n;i++)
{
sum1=1;
for(j=1;j=i;j++)
{
sum1=sum1*j;
}
sum=sum+sum1;
}
if(n==0) sum=1;
printf("\n阶乘的和为:%d",sum);
}
内层for语句是求i的阶乘,外层for语句是求0!+1!+……+n!