計算1/1-1/2+1/3-1/4+1/5 …… + 1/99
阿新 • • 發佈:2018-12-12
分析:
將式子拆分成兩部分:正數相加部分、負數相加部分。利用for迴圈分別求得第一部分和第二部分之和,再將兩個和相減。
#include <stdio.h> #include <stdlib.h> double add(double a, double b){ double sum = a + b; return sum; } int main(){ int i,j; double sum1 = 1, sum2 = 0; //第一部分之和 for (i=1; i < 50; i ++){ sum1=add(sum1, 1.0/(2 * i + 1)); } //第二部分之和 for (j=1; j < 50; j++){ sum2 = add(sum2, 1.0/(2 * j )); } printf("%lf\n", sum1 - sum2); system("pause"); return 0; }
執行結果:
優化:
#include <stdio.h>
#include <stdlib.h>
int main(){
int i,t=1;
double sum= 0;
for (i = 1; i < 101; i++){
sum +=(1.0/(t*i));
t=-t;
}
printf("%lf\n", sum);
system("pause");
return 0;
}