十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
海城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
void main( ) {
int i,n,k=1,s=0;
scanf("%d",n);
for(i=1;i=n;i++)
{k*=i;s+=k;}
printf("%d",s);
}
//运行示例:
/**
**程序描述:求求1~20的阶乘之和。
**算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。
*/
#include stdio.h
#define N 20
typedef unsigned long long uInt64; //自定义类型
//求出每一项阶乘值的函数
uInt64 fact(int n)
{
int i;
uInt64 s;
for(i=s=1;i=n;i++)
s*=i; //从1开始循环累加相乘
return s;
}
int main()
{
uInt64 s;
int i;
for(i=1,s=0;i=N;i++)
s+=fact(i); //从第1项开始循环累加每一项的阶乘值
printf("1!+2!+3!+……+20!=%llu\n",s);
return 0;
}
法/步骤
第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#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)公式计算近似算或取得大小范围。
#include stdio.h
int factorial(int n) {
int sum = 1;
for (int i = n; i 0; i--) {
sum *= i;
}
return sum;
}
int factorial2(int n) {
int sum = 1;
while (n--) {
sum *= (n + 1);
}
return sum;
}
int factorial3(int n) {
int sum = 1;
inGo: sum *= n;
if (n-- 1) {
goto inGo;
}
return sum;
}
main函数中调用就好了咯~
java语言编写如下:
package com.sxl.test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请数入第一个数:");
Scanner input_a = new Scanner(System.in);
int a = input_a.nextInt();
System.out.println("请输入第二个数:");
Scanner input_b = new Scanner(System.in);
int b = input_b.nextInt();
System.out.println(a+"的阶乘 加上 "+b+"的阶乘="+(fun2(a)+fun2(b)));
}
private static int fun2(int a) {
int result;
if(a=1) {
result=1;
}else {
result = a*fun2(a-1);
}
return result;
}
}
c语言的编译器没有安装。但是算法和思路是一样的。