Advertisement
Guest User

Calculate pi to 29 digits

a guest
Feb 14th, 2012
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 KB | None | 0 0
  1.     #include <stdio.h>
  2.     #include <math.h>
  3.     #define ld __float128
  4.  
  5.     ld pie(int level);
  6.     ld cake(int level);
  7.     void sho(ld a);
  8.  
  9.     //
  10.     // I borrowed sho() from:
  11.     // http://mathforum.org/kb/thread.jspa?threadID=2229919&messageID=7363928
  12.     //
  13.     int main()
  14.     {
  15.         ld pi = 16 / cake(0) - 4 / pie(0);
  16.         sho(pi);
  17.         return 0;
  18.     }
  19.  
  20.     ld pie(int level)
  21.     {
  22.         if(level > 15) return 1;
  23.         ld x = (478*level)+239 + (level+1)*(level+1) / pie(++level);
  24.         return x;
  25.     }
  26.  
  27.     ld cake(int level)
  28.     {
  29.         if(level > 15) return 1;
  30.         ld x = (10*level)+5 + (level+1)*(level+1) / cake(++level);
  31.         return x;
  32.     }
  33.  
  34.     void sho (ld a) {
  35.             long double c = floor ((long double)(1e10Q * a));
  36.             ld d = c, f = a - d/1e10Q, g=1e30Q * f;
  37.             printf("%0.10Lf%020.0Lf\n", c/1e10L, (long double)g);
  38.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement