C 练习实例25
题目:求 1 + 2! + 3! + ... + 20! 的和。
程序分析:此程序只是把累加变成了累乘。
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
// 计算阶乘的函数
unsigned long long factorial(int n) {
unsigned long long result = 1;
for(int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
unsigned long long sum = 0;
// 计算1 + 2! + 3! + ... + 20!
for(int i = 1; i <= 20; i++) {
sum += factorial(i);
}
// 输出结果
printf("1 + 2! + 3! + ... + 20!的和是: %llu\n", sum);
return 0;
}
以上实例输出结果为:
1 + 2! + 3! + ... + 20!的和是: 2561327494111820313
代码解析
- 头文件: 包含必要的头文件
stdio.h。 - 阶乘函数:
unsigned long long factorial(int n)函数用于计算给定整数n的阶乘,返回值类型为unsigned long long以处理较大的数值。- 初始化
result为1。 - 使用
for循环从1乘到n。
- 初始化
- 主函数:
- 定义
sum变量来累加所有阶乘的和,类型为unsigned long long以处理较大的数值。 - 使用
for循环计算从1到20的阶乘,并将结果累加到sum。 - 使用
printf函数输出最终结果。
- 定义
C 语言经典100例
Loura鱼
315***6108@qq.com
参考:
#include <stdio.h> int main() { int i, j; double c; double sum = 0.0; for (i = 1; i <= 20; i++) { c = 1; for (j = 1; j <=i ; j++) { c *= j; } sum += c; } printf("1+2!+3!+...+20!的和为:%lf\n", sum); // system("pause"); return 0; }Loura鱼
315***6108@qq.com
赵先生哇
729***039@qq.com
参考方法:
#include<stdio.h> #include<stdlib.h> long double jiecheng(int n)//计算阶乘 { if (n == 1) { return 1; } else { return (n*jiecheng(n-1)); } } int main() { long double sum = 0; for (int i = 1; i <= 20; i++) { sum = sum + jiecheng(i); } printf("sum=%Lf", sum); system("pause"); }赵先生哇
729***039@qq.com
HIT_CCC
117***2963@qq.com
参考方法:
#include<stdio.h> double Fun(double n) { if(n == 0) return 1; else return n*Fun(n - 1); } int main(void) { double sum = 0, i; for(i = 1;i <= 20; i++) { sum += Fun(i); } printf("%lf\n",sum); return 0; }HIT_CCC
117***2963@qq.com
ronnyz
221***8677@qq.com
参考方法:
#include <stdio.h> int main(){ int i,t,n; long long sum,temp; while(scanf("%d",&n)!=EOF){ sum=0; if(n==0 || n==1){ printf("1\n"); } else{ for(i=1;i<=n;i++){ temp=1; t=i; while(t){ temp=temp*t; t--; } sum+=temp; } } printf("%lld\n",sum); } return 0; }ronnyz
221***8677@qq.com
henrydai
hen***ai1995@163.com
参考方法:
#include <stdio.h> #pragma warning(disable:4996) void compute(long int);//计算前N!和的子函数 int main() { long int number = 0; printf("求N!,请输入N;\n"); scanf("%ld",&number); compute(number);//调用子函数 //system("pause"); } void compute(long int number) { long int n = 1; long int sum = 0; long int i = 0; for(i = 0;i<number;++i) { n = n*(i+1);//计算当前的N! sum = sum + n;//计算前N!的和 if(i<number-1) printf("%ld!+",i+1); if(i == number-1) printf("%ld!=%ld\n",i+1,sum); } }henrydai
hen***ai1995@163.com