本題要求編寫程序,計算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一項的絕對值不大於給定精度eps。
輸入格式:
輸入在一行中給出一個正實數eps。
輸出格式:
在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點后六位。題目保證計算結果不超過雙精度范圍。
輸入樣例1:
4E-2
輸出樣例1:
sum = 0.854457
輸入樣例2:
0.02
輸出樣例2:
sum = 0.826310
#include<stdio.h> #include<math.h> int main(void) { int i,sign; double sum,eps,a; scanf("%lf",&eps); sum=0; a=1.0; i=1; sign=1; do{ //a作為最后一項也要加,所以把a放到最前面 a=(sign*1.0)/i; //如果a放在dowhile的最后一項,最后一項將沒加到 sum=sum+a; //fabs()為絕對值函數 i+=3; sign=-sign; }while(fabs(a)>eps); printf("sum = %.6f",sum); return 0; }