一道pascal高精度題

2022-09-20 23:25:02 字數 1229 閱讀 1124

1樓:小豬大刀

vara:array[1..10000000000] of byte;

w,n,i,j:longint;

begin

readln(n);

a[1]:=1;

for i:=1 to n do

begin

for j:=1 to w do

a[j]:=a[j]*2;

for j:=1 to w do

if a[j]>10 then

begin

a[j+1]:=a[j+1]+a[j] div 10;

a[j]:=a[j] mod 10;

if j+1>w then w:=j+1;

end;

end;

for i:=w downto 1 do write(a[i]);

end.

2樓:尚巾月生

你會寫高精度吧,

會就好,然後只要考慮超時問題了。

比如計算

2^1000

並不是用2自乘1000次

而是計算((2^2)^2)^2。。。。。

3樓:

高精度不多說……先假設你把乘法練熟了

設函式 f(x)=2^x;

則 f(x)=f(x div 2)^2【x mod 2=0】;或者f(x)=f(x div 2) *2【x mod 2=1】;

利用遞迴思想,一直遞迴下去,直到邊界:x=0 --> f(x)=1;

剛剛試了一下,覺得太麻煩,就沒有編了……

只需要編乙個將高精度平方的函式以及乙個2乘以高精度的函式就可以了。

時間複雜度絕對是最小的了(logn)

不過要注意不能呼叫遞迴函式來做,因為陣列開得太大函式會爆,只有在主程式裡面用迴圈實現遞迴……

具體可以用乙個陣列k來存放n的2進製表示,然後從最後一位朝前面掃瞄,如果k[i]=0,則f(x)=f(x div 2)^2 如果k[i]=1則f(x)=f(x div 2) *2

然後直接輸出就行了

4樓:匿名使用者

varn,i:int64;

begin

i:=2;

readln(n);

repeat

i:=i*2;

n:=n-1;

until n=1;

writeln(i);

end.

一道政治題,一道政治題

乙個自認為過早成熟的男生,也許剛剛承受過某種傷痛,失戀 家人生病或者遭受挫折等等,這個娃想要追求某女,某女,一心學習,不想旁顧,給這娃發了一張好人卡,拒絕了這個男生。這是委婉的拒絕別人的求愛。拒絕早戀 一道政治題目,求解,樓主,遇到我算你賺了,今天剛背過這一段,但是打字 實在太麻煩,就找個電子版的複...

一道政治題,一道政治題

圈3的表述沒錯,但是材料中沒有體現。中國使用機械生物技術正是體現了矛盾的特殊性。因此正確選項為a項。文不對題,肯定不對啊。你說的這個又不是矛盾的關係 一道政治題 答 不是,只有宋阿婆copy和她的二bai女兒三女兒有繼承權 du因為只有被繼承人 王旭 的法 zhi定繼dao承人才有繼承權,按照繼承順...

一道閱讀題,一道閱讀題

17 奇 巧 引人入勝 妙 18引用首尾呼應 說明黃山的奇是被人認可突出了黃山的奇 一道閱讀題。答案!伯父指爸爸的哥哥或是鼻子又扁又平的人 我就是爸爸的孩子,也是文章的第一人稱 主要內容就是,講伯父的鼻子為什麼會又扁又平破折號作用是省略 含義是在複雜的社會裡,生存很不容易 1 文中的 伯父 指 爸爸...