ตัวอย่างการหาค่า PI ภาษา Python
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้def calcPi():
q, r, t, k, n, l = 1, 0, 1, 1, 3, 3
while True:
if 4*q+r-t < n*t:
yield n
nr = 10*(r-n*t)
n = ((10*(3*q+r))//t)-10*n
q *= 10
r = nr
else:
nr = (2*q+r)*l
nn = (q*(7*k)+2+(r*l))//(t*l)
q *= k
t *= l
l += 2
k += 1
n = nn
r = nr
import sys
pi_digits = calcPi()
for d in pi_digits:
sys.stdout.write(str(d))
ภาษา C ที่ลองเขียนดู แต่ไม่สำเร็จ
ใครเก่งภาษา C ช่วยแก้ไขให้ด้วยนะครับ
อยากจะให้มัน print output แบบไม่รู้จบโดยไม่ใช้ function printf ด้วยยิ่งดีครับ
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้#include<stdio.h>
float calcPi() {
int flag=1;
float q=1, r=0, t=1, k=1, n=3, l=3, nr=0, nn=0;
while (flag) {
if (4*q+r-t < n*t) {
nr = 10*(r-n*t);
n = ((10*(3*q+r))/t)-10*n;
q *= 10;
r = nr;
flag=0;
}
else {
nr = (2*q+r)*l;
nn = (q*(7*k)+2+(r*l))/(t*l);
q *= k;
t *= l;
l += 2;
k += 1;
n = nn;
r = nr;
flag=1;
}
}
return n;
}
void main(void) {
int i, DIGIT=10;
for (i=0;i<=DIGIT;i++) {
printf("%0.1f",calcPi());
}
}
แปลง Code จาก Python เป็น C ในการหาค่า PI แบบไม่รู้จบ
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
ภาษา C ที่ลองเขียนดู แต่ไม่สำเร็จ
ใครเก่งภาษา C ช่วยแก้ไขให้ด้วยนะครับ
อยากจะให้มัน print output แบบไม่รู้จบโดยไม่ใช้ function printf ด้วยยิ่งดีครับ
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้