計算2 N(高精度計算)C語言

2021-09-01 06:16:23 字數 638 閱讀 6581

總時間限制: 1000ms 記憶體限制: 65536kb

任意給定乙個正整數n(n<=100),計算2的n次方的值。

輸入乙個正整數n。

輸出2的n次方的值。

高精度計算

分析: 2^100為31位數字,任何整型資料無法儲存,而用double雖可儲存但有誤差,故考慮用陣列,各位數用單獨乙個元素儲存。

注意:實現每一次乘多少次是重點,用ws儲存位數,若有進製且前一位數是0(還未進製)則ws加1,每次從0開始ws位數字進行乘法(在這裡卡了好久tat)

上**

#include #define maxn 32

int main()

;a[0]=1;

scanf("%d",&n);

for(i=0; i= 10)

if(a[ws]&&a[ws+1]==0) count=1;//當預留進製a[ws]發生進製並且前一位數是0時,進1位

else count =0;

}ws+=count;

}for(i=ws-1; i>=0; i--) printf("%d",a[i]);

return 0;

}

計算2的n次方(高精度)

problem description 任意給定乙個正整數n n 100 計算2的n次方的值。input 輸入有多行,每行只有乙個正整數n。output 輸出2的n次方的值。sample input51 sample output322 用c語言實現的 如下 include include incl...

高精度 計算2的N次方

任意給定乙個正整數n n 100 計算2的n次方的值。輸入乙個正整數n。輸出2的n次方的值。本題考察的是大數乘法。需要注意觀察資料範圍,int的範圍極限接近 2 本題中n的範圍使得最後的數值會超過int範圍極限,甚至是long long範圍極限。那麼此時可以採用高精度乘法的思想來進行處理。並且,這一...

高精度計算

最近做了一些高精度計算問題,一般來說解題辦法都差不多,都是通過字串來操作的,下面是解題模板。清零操作 string clearstr string s if s return s 0 while s.length 0 s 0 0 s.erase 0,1 刪除第乙個零 if s return s 0 ...