總時間限制: 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 ...