2の100乗を求めるプログラムを作りたいのですが、桁数の関係か途中から四捨五入されてしまい、正確な値がでません。よかったら、そのプログラムを作ってもらえませんか?
2の100乗ということは、100ビット。
Int64でも格納不可能ということで、配列に格納しようってことかな。
>よかったら、そのプログラムを作ってもらえませんか?
それはないでしょ。自分でどこまでやったの?
虫(ムシ)がイイ質問は、無視(ムシ)がイイに一票。
筆算を力ずくでプログラミングしてみました。
合ってますか?
var S:string;
i:integer;
S:='1';
for i:=1 to 100 do S:=MultiM(S,2);
showmessage(S);
//---------------------------------------------
function TForm1.MultiM(S: string; m: integer): string;
var i,k,jk:integer;
aSt:string;
begin
jk:=0;
aSt:='';
for i:=length(S) downto 1 do begin
k:=strtoint(S[i])*m+jk;
jk:=k div 10;
k:=k mod 10;
aSt:=inttostr(k)+aSt;
end;
if jk>0 then aSt:=inttostr(jk)+aSt;
result:=aSt;
end;
ツイート | ![]() |