1+1/1!+1/2!+1/3!+1/4!+...前 100项之和
时间: 2023-11-15 19:04:57 浏览: 73
这道题目是要求计算数列1+1/1!+1/2!+1/3!+1/4!+...前100项之和。其中,n!表示n的阶乘,即n!=n*(n-1)*(n-2)*...*2*1。以下是两种不同的C语言程序实现方法:
1. 使用for循环计算:
#include <stdio.h>
int main(){
int i;
double sum = 0.0;
double factorial = 1.0;
for (i = 0; i < 100; ++i){
factorial *= (i+1);
sum += 1.0/factorial;
}
printf ("%f\n", sum+1); //注意要加上1
return 0;
}
2. 使用函数计算阶乘:
#include <stdio.h>
long factorial(int n){
int i;
long s=1;
for(i=1;i<=n;i++) s=s*i;
return s;
}
int main(){
int i;
double sum=0;
for(i=0;i<100;i++) sum=sum+1.0/factorial(i);
printf("sum=%f\n",sum+1); //注意要加上1
return 0;
}
相关问题
求1+1/1!+1/2!+1/3!+1/4!+...前100项之和
这道题目是要求计算数列1+1/1!+1/2!+1/3!+1/4!+...前100项之和。其中,n!表示n的阶乘,即n!=n*(n-1)*(n-2)*...*2*1。以下是两种C语言程序设计的解法:
1. 引用中的程序使用for循环计算数列的前20项之和,代码如下:
#include <stdio.h>
int main(){
int i = 1;
double sum = 0.0;
for (i = 1; i <= 100; ++i){
double factorial = 1.0;
int j;
for (j = 1; j <= i; ++j){
factorial *= j;
}
sum += 1.0/factorial;
}
printf ("%f\n", sum);
return 0;
}
2. 引用中的程序使用for循环和函数计算数列的前10项之和,代码如下:
#include <stdio.h>
long fun(int n){
int i;
long s=1;
for(i=1;i<=n;i++) s=s*i;
return s;
}
void main(){
int i;
double sum=0;
for(i=1;i<=100;i++)sum=sum+1.0/fun(i);
printf("sum=%f\n",sum);
}
求1+1/1!+1/2!+1/3!+1/4!+...前 100项之和C语言代码
以下是求解1+1/1!+1/2!+1/3!+1/4!+...前100项之和的C语言代码:
引用:
#include <stdio.h>
int main(){
int i = 1;
double sum = 0.0;
for (i = 1; i <= 100; ++i){
double factorial = 1.0;
int j;
for (j = 1; j <= i; ++j){
factorial *= j;
}
sum += 1.0/factorial;
}
printf ("%f\n", sum);
return 0;
}
阅读全文