ソス@ソスソスソスソスソス{ソスソスソスソスソスZソスフ擾ソスソスZ
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
http://oku.edu.mie-u.ac.jp/‾okumura/algo/algo_pas.html
ソスiソスuソスRソスソスソスsソスソスソス[ソス^ソスEソスAソスソスソスSソスソスソスYソスソスソスソスソスTソスvソスフソソス[ソスX CHAP04.pasソスj
ソスナ鯉ソスソスJソスソスソスソストゑソスソス髑スソス{ソスソスソスソスソスZソスフ擾ソスソスZソスナ、ソスソスソスソスソス_ソスネ会ソスソスソスソスソス゚ようソスニゑソスソスト以会ソスソスフようソスノコソス[ソスfソスBソスソスソスOソスソスソスソスソスフでゑソスソスソスソスAソスソスソスソスソスニ被除ソスソスソスフ搾ソスソスソスソスソスソスソスソスソスソスニゑソスソスソスソスソスソス_ソスネ会ソスソスソスソスソスソスソスソスソスソスvソスZソスナゑソスソスワゑソスソスソスB
ソス@ソスソスソスニゑソスソスソス
(a)9999999999999999999999999999999999ソス@ソス除ソスソス
899999999999999999999999999999999ソス@ソスソスソスソスソスiソス謫ェソスソス8ソスj
(b)99999ソス@ソス除ソスソス
9999ソス@ソスソスソスソス
ソスネどはゑソスソスソスソスソスソス蛯、ソスヤでゑソスソスソス
(c)9999999999999999999999999999999999ソス@ソス除ソスソス
999999999999999999999999999999999ソス@ソスソスソスソスソスiソス謫ェソスソスソスXソスj
(d)99999ソス@ソス除ソスソス
98999ソス@ソスソスソスソス
ソスネどはダソスソスソスナゑソスソスB
ソス@ソスソスソスネみに最擾ソスソスソスソスソスソスソスソスpソスソスソスネゑソスソス鼾
(e)9999ソス@ソス除ソスソス
9998ソス@ソスソスソスソス
ソスフようソスノ搾ソスソスソス1ソスナゑソスnソスjソスナゑソスソスB
ソス@ソスソスソスいソス試ソスsソスソスソスしソスネゑソスソスソスRソス[ソスhソスソスMソスソスソストゑソスソスソスフでゑソスソスソスソスAソスネゑソスソスネゑソスソスソスソスワゑソスソスソスソスソスソスワゑソスソスソスBソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスKソスソスソスナゑソスソスB
-------------------------------------------------------------------------
ソスyCHAP04.pasソスソスマ更ソスソスソスソスソスソスソスソスソスz
const
BASE = 10000; // 10000 ソスiソス@
BASE_ONE = BASE-1; // BASE-1 = 9999
BASE2 = BASE*BASE; // BASE*BASE = 100,000,000ソスiソスPソスソスソスj
MAXLEN = 100000; // BASE ソスiソス@ソスナの最大桁ソスソス
type
Digit = 0..BASE_ONE; // ソスeソスソスソスフ撰ソス(0 ソスソスソスソス 9999)
TSuperLong = record
Len: 0..MAXLEN;
Num:array [0..MAXLEN] of Digit;
end;
ソス@ソスソスOソスソスソスソスソスソス writeln ソスソスgソスpソスソスソストゑソスソスソスソスニゑソスソスソスソス raise Exception.Create ソスノ替ゑソスソスワゑソスソスソスソスB
-------------------------------------------------------------------------
//ソスソスソスlソスソスソスソスソスソス多倍ソスソスソスソスソスソスソスノ変奇ソス
function StrToSuperLong(const S: string; n: Integer): TSuperLong;
var
X :TSuperLong;
dmy :string;
L, i, k:Integer;
begin
L := Length(S); i := 1;
repeat
k := L-i*n+1;
if k < 1 then dmy := Copy(S,1,n-1+k)
else dmy := Copy(S,k,n);
X.Len := i;
X.Num[X.Len] := StrToInt(dmy);
Inc(i);
until k <= 1;
Result := X;
end;
//ソスソスソス{ソスソスソスソスソスソスソス数値ソスソスソスソスソスソスノ変奇ソス
function TForm1.SuperLongToStr(X: TSuperLong): string;
var
i :Integer;
begin
Result := IntToStr(X.Num[X.Len]);
for i := X.Len-1 downto 1 do
Result := Result+Format('%.4d',[ X.Num[i] ]);
if X.Len = 0 then Result := '0';
end;
//ソスソスソスソスソス_ソスネ会ソスソスソスソスソス゚ゑソス
procedure TForm1.Button1Click(Sender: TObject);
var
W, Bunshi, Bunbo, R, R2: TSuperLong;
i: Integer;
begin
if (Edit1.Text = '') or (Edit2.Text = '') then Exit;
W.Num[0] := 0; R.Num[0] := 0; R2.Num[0] := 0;
Bunshi := StrToSuperLong(Edit1.Text,4);//ソスソスソスlソスソスソスソスソスソス多倍ソスソスソスソスソスソスソスソス
Bunbo := StrToSuperLong(Edit2.Text,4);
if (Bunbo.Num[1] = 0) and (Bunbo.Len = 1) then
begin
MessageDlg('0 ソスナは奇ソスソスソスワゑソスソスソスB', mtInformation, [mbOK], 0);
Exit;
end;
LongDiv(W, Bunshi, Bunbo, R); //W:ソスソス R:ソス]
if R.Num[1] = 0 then
Edit3.Text := SuperLongToStr(W) //ソスソスソス{ソスソスソスソスソスソスソス数値ソスソスソスソスソスソスソス
else
begin
Edit3.Text := SuperLongToStr(W)+'.';
ShortMul(R2,R,10); //ソス]ソスソス10ソス{
for i := 1 to 30 do //ソスソスソスソスソス_ソスネ会ソス30ソスソス
begin
LongDiv(W, R2, Bunbo,R);
Edit3.Text := Edit3.Text+SuperLongToStr(W);
if R.Num[1] = 0 then break;
ShortMul(R2,R,10);
end;
end;
end;
99999/99998 ソスソスソスソスソス 1.0000 ソスニなるがソスA
ソスソスソスフとゑソス R.Num[1] = 0 R.Num[2] = 1 ソスノなゑソスソストゑソスソスソス
ソスネのゑソス
R.Num ソスSソスソス 0 ソスフ趣ソスソスソス Break ソスソスソスソスニようソスノゑソスソスソスホ良ゑソスソスニ思ソスソスソスソスソスヌ?
> 99999/99998 ソスソスソスソスソス 1.0000 ソスニなるがソスA
> ソスソスソスフとゑソス R.Num[1] = 0 R.Num[2] = 1 ソスノなゑソスソストゑソスソスソス
ソス@ソスソスソスソスソスワではデソスoソスbソスKソスナ確ソスFソスソスソストゑソスソスワゑソスソスソスソスBソスソスソスソスソスソス
> R.Num ソスSソスソス 0 ソスフ趣ソスソスソス Break ソスソスソスソスニようソスノゑソスソスソスホ良ゑソスソスニ思ソスソスソスソスソスヌ?
ソスニ思ソスソスソスツゑソスソスネゑソスソスソスソスoソスJソスネ趣ソスソスナゑソスソスソスソスB
ソス@ソスソスソスツゑソスMソスdソスネアソスhソスoソスCソスXソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
(a)ソスソスソスソス1
9999999999999999999999999999999999ソス@ソス除ソスソス
9999999999999999999999999999999998ソス@ソスソスソスソス
(b)
9999999999999999999999999999999999ソス@ソス除ソスソス
9899999999999999999999999999999998ソス@ソスソスソスソスソスiソス謫ェソスソスソスソス2ソスヤ目ゑソス8ソスj
9800099999999999999999999999999999ソス@ソスソスソスソス
9800099990000999999999999999999999ソス@ソスソスソスソス
-------------------------------------------------------------------------
(a)ソスソスソスnソスjソスネので厄ソスソスネゑソスソスニ思ソスソスソストゑソスソスソスソスフでゑソスソスソスソスA(b)ソスフ暦ソスナは托ソスソス{ソスソスソスソスソスmソスフ擾ソスソスZソスiLongDivソスjソスソスソスソスsソスソスソスソスソスソスソス_ソスナゑソスソスラてゑソス R.Num ソスソスソス[ソスソスソスノなゑソスAソスソスソスハゑソス 1 ソスノなゑソスワゑソスソスBLongDiv ソスフバソスOソスナゑソスソス蛯、ソスソスソスヒゑソスソスH
http://f31.aaa.livedoor.jp/‾oilerex/pzip/