Pi: Difference between revisions
Content added Content deleted
(Second D version) |
|||
Line 414: | Line 414: | ||
862803482 |
862803482 |
||
534211706</pre> |
534211706</pre> |
||
===Alternative version=== |
|||
<lang d>import std.stdio, std.bigint; |
|||
void main() { |
|||
int ndigits = 0; |
|||
auto q = BigInt(1); |
|||
auto r = BigInt(0); |
|||
auto t = q; |
|||
auto k = q; |
|||
auto n = BigInt(3); |
|||
auto l = n; |
|||
bool first = true; |
|||
while (ndigits < 1_000) { |
|||
if (4 * q + r - t < n * t) { |
|||
write(n); ndigits++; |
|||
if (ndigits % 70 == 0) writeln(); |
|||
if (first) { first = false; write('.'); } |
|||
auto nr = 10 * (r - n * t); |
|||
n = ((10 * (3 * q + r)) / t) - 10 * n; |
|||
q *= 10; |
|||
r = nr; |
|||
} else { |
|||
auto nr = (2 * q + r) * l; |
|||
auto nn = (q * (7 * k + 2) + r * l) / (t * l); |
|||
q *= k; |
|||
t *= l; |
|||
l += 2; |
|||
k++; |
|||
n = nn; |
|||
r = nr; |
|||
} |
|||
} |
|||
}</lang> |
|||
Output: |
|||
<pre>3.141592653589793238462643383279502884197169399375105820974944592307816 |
|||
4062862089986280348253421170679821480865132823066470938446095505822317 |
|||
2535940812848111745028410270193852110555964462294895493038196442881097 |
|||
5665933446128475648233786783165271201909145648566923460348610454326648 |
|||
2133936072602491412737245870066063155881748815209209628292540917153643 |
|||
6789259036001133053054882046652138414695194151160943305727036575959195 |
|||
3092186117381932611793105118548074462379962749567351885752724891227938 |
|||
1830119491298336733624406566430860213949463952247371907021798609437027 |
|||
7053921717629317675238467481846766940513200056812714526356082778577134 |
|||
2757789609173637178721468440901224953430146549585371050792279689258923 |
|||
5420199561121290219608640344181598136297747713099605187072113499999983 |
|||
7297804995105973173281609631859502445945534690830264252230825334468503 |
|||
5261931188171010003137838752886587533208381420617177669147303598253490 |
|||
4287554687311595628638823537875937519577818577805321712268066130019278 |
|||
76611195909216420198</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |