fork(4) download
  1. #include <vector>
  2. #include <string>
  3. #include <iostream>
  4. #include <iomanip>
  5.  
  6. using namespace std;
  7.  
  8. string Pi(int N)
  9. {
  10. int M = (N*10+2)/3;
  11. vector<int> r(M,2);
  12. string pi;
  13. pi.reserve(N+1);
  14. for(int i = 0; i < N; ++i)
  15. {
  16. int carry = 0;
  17. int sum = 0;
  18. for(int j = M-1; j >= 0; --j)
  19. {
  20. r[j] *= 10;
  21. sum = r[j] + carry;
  22. int q = sum / (2*j+1);
  23. r[j] = sum % (2*j+1);
  24. carry = q * j;
  25. }
  26. r[0] = sum % 10;
  27. int q = sum / 10;
  28. if (q >= 10)
  29. {
  30. q = q - 10;
  31. for(int j = pi.length()-1;;--j)
  32. {
  33. if (pi[j] == '9')
  34. pi[j] = '0';
  35. else
  36. {
  37. ++pi[j];
  38. break;
  39. }
  40. }
  41. }
  42. pi += ('0' + q);
  43. if (i== 0) pi += '.';
  44. }
  45. return pi;
  46. }
  47.  
  48. int main(int argc, const char * argv[])
  49. {
  50. cout << Pi(2000) << endl;
  51. }
  52.  
Success #stdin #stdout 0.09s 15240KB
stdin
Standard input is empty
stdout
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900