作者fm461020 (豬)
看板C_and_CPP
標題[問題] 下列程式能印出圓周率達800位,將各for loops改成while loop
時間Tue Apr 7 13:55:09 2009
這是老師上課出的作業,
下列程式能印出圓周率達800位,將各for loops改成while loops:
long a=10000, b, c=2800, d, e, f[2801], g;
main() { for( ; b-c ; ) f[b++] =
a/5; for ( ; d = 0, g = c*2; c -= 14, printf("%.4d", e+d/a), e = d%a) for
(b = c; d += f[b]*a, f[b] = d%--g, d /= g--, --b; d *= b); }
看不懂寫法,改成while也沒成功跑出來,請問有人會嗎?
此程式跑出來的結果如下
31415926535897932384626433832795028841971693993751058209749445923078164062862089
98628034825342117067982148086513282306647093844609550582231725359408128481117450
28410270193852110555964462294895493038196442881097566593344612847564823378678316
52712019091456485669234603486104543266482133936072602491412737245870066063155881
74881520920962829254091715364367892590360011330530548820466521384146951941511609
43305727036575959195309218611738193261179310511854807446237996274956735188575272
48912279381830119491298336733624406566430860213949463952247371907021798609437027
70539217176293176752384674818467669405132000568127145263560827785771342757789609
17363717872146844090122495343014654958537105079227968925892354201995611212902196
08640344181598136297747713099605187072113499999983729780499510597317328160963185
請按任意鍵繼續 . . .
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.221.74
1F:推 VictorTom:1.先code排個版再貼吧~_~ 2.for->while其實不複雜的code 04/07 14:10
2F:→ VictorTom:只要注意 a.初始化index, b.邊界判斷, c.step值就能改了 04/07 14:11
3F:→ MOONRAKER:這對新手的確不容易,因為看不懂哪裡在判斷… 04/07 15:05
4F:→ fm461020:感謝推文,問題解決了 04/07 15:21