fork(2) download
  1. #include <stdio.h>
  2.  
  3.  
  4. int main() {
  5.  
  6. // рабочие переменные
  7. double s = 0;
  8. int i, n ;
  9.  
  10. double b, x, xPrev = 0, xPrev2 = 0, xPrev3 = 0;
  11. int k;
  12.  
  13. if( scanf("%d", &n) <= 0 )
  14. {
  15. printf("error: missing n\n" );
  16. return 0;
  17. }
  18.  
  19. if( n <= 0 )
  20. {
  21. printf("error: out of range: n=%d\n", n);
  22. return 0;
  23. }
  24.  
  25. // основной цикл сравнения
  26. for( i = 1, b = 2; i <= n; i++, b *= 2 )
  27. {
  28. if( i > 3 ) xPrev3 = xPrev2;
  29. if( i > 2 ) xPrev2 = xPrev;
  30. if( i > 1 ) xPrev = x;
  31.  
  32. if( i < 4 )
  33. {
  34. x = 1;
  35. }
  36. else
  37. {
  38. x = xPrev + xPrev3;
  39. }
  40.  
  41. s += x / b;
  42. }
  43.  
  44. // вывод результата
  45. printf("result: %lf\n", s );
  46. return 0;
  47. }
Success #stdin #stdout 0s 3300KB
stdin
4
stdout
result: 1.000000