fork download
  1. #include <stdio.h>
  2.  
  3. /*
  4.  * 等比数列の和
  5.  * 初項a0=7, 公比d=0.5
  6.  */
  7. int main(void) {
  8. double a=1, sum=0; //(初)項、和
  9. double pre, diff; //前項、差分
  10. int i=0; //i番目
  11.  
  12. do{
  13. sum = sum + a;
  14. pre = a; //前項
  15. a = -0.5*a; //次項
  16. i = i + 1;
  17. printf("%d %.8f %.8f",i,pre,a); //確認用
  18. if(pre>a){
  19. diff = pre - a;
  20. }else{
  21. diff = a - pre;
  22. }printf(" %.8f\n",diff);
  23.  
  24. }while(diff>0.0000001);
  25. printf("合計 %.7f\n",sum);
  26.  
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
1 1.00000000 -0.50000000 1.50000000
2 -0.50000000 0.25000000 0.75000000
3 0.25000000 -0.12500000 0.37500000
4 -0.12500000 0.06250000 0.18750000
5 0.06250000 -0.03125000 0.09375000
6 -0.03125000 0.01562500 0.04687500
7 0.01562500 -0.00781250 0.02343750
8 -0.00781250 0.00390625 0.01171875
9 0.00390625 -0.00195312 0.00585938
10 -0.00195312 0.00097656 0.00292969
11 0.00097656 -0.00048828 0.00146484
12 -0.00048828 0.00024414 0.00073242
13 0.00024414 -0.00012207 0.00036621
14 -0.00012207 0.00006104 0.00018311
15 0.00006104 -0.00003052 0.00009155
16 -0.00003052 0.00001526 0.00004578
17 0.00001526 -0.00000763 0.00002289
18 -0.00000763 0.00000381 0.00001144
19 0.00000381 -0.00000191 0.00000572
20 -0.00000191 0.00000095 0.00000286
21 0.00000095 -0.00000048 0.00000143
22 -0.00000048 0.00000024 0.00000072
23 0.00000024 -0.00000012 0.00000036
24 -0.00000012 0.00000006 0.00000018
25 0.00000006 -0.00000003 0.00000009
合計 0.6666667