新しく発言する  EXIT  インデックスへ

円周率の計算


  円周率の計算 KK62526 2008/07/22 23:42:21 
  !C言語版の移植PiSpigot.BAS 山中和義 2008/07/30 16:41:28  (修正1回)
Re: 円周率の計算  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/07/30 16:41:28 ** この記事は1回修正されてます
!C言語版の移植 PiSpigot.BAS

REM---> long a[52514],b,c=52514,d,e,f=1e4,g,h;
DIM a(0 TO 52514-1)
MAT a=ZER !※C言語は初期化しないため値は不定
LET b=0 !※
LET c=52514
LET d=0 !※
LET e=0 !※
LET f=1E4
LET g=0 !※
LET h=0 !※

REM---> main(){
!nop

REM---> for(;b=c-=14;h=printf("%04d",e+d/f))
!nop !for( ;〜;〜)部分

DO !for(〜;b=c-=14;〜)部分
LET c=c-14
LET b=c
IF b=0 THEN EXIT DO

REM---> for(e=d%=f;g=--b*2;d/=g)
LET d=MOD(d,f) !for(e=d%=f;〜;〜)部分
LET e=d

DO !for(〜;g=--b*2;〜)部分
LET b=b-1
LET g=b*2
IF g=0 THEN EXIT DO

REM---> d=d*b+f*(h?a[b]:f/5),
IF h<>0 THEN LET d=d*b+f*a(b) ELSE LET d=d*b+f*INT(f/5)

REM---> a[b]=d%--g;
LET g=g-1
LET a(b)=MOD(d,g)


LET d=INT(d/g) !for(〜;〜;d/=g)部分

LOOP


LET h=e+INT(d/f) !for(〜;〜;h=printf("%04d",e+d/f))
PRINT USING "%%%%": h;

LOOP

REM---> }
END
   └C言語版への移植どうもありがとうございまし... KK62526 2008/07/31 08:32:40 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。