1068 二進位制數

2021-10-04 06:39:48 字數 823 閱讀 9969

1068: 二進位制數

時間限制: 1 sec 記憶體限制: 128 mb

提交: 11938 解決: 8772

[狀態] [討論版] [提交] [命題人:admin]

題目描述

將乙個二進位制數,轉換為對應的十進位制數。

輸入輸入乙個二進位制數,以回車結束。該二進位制數為正數,長度不超過31。

輸出輸出乙個整數,為該二進位制數對應的十進位制數。

樣例輸入 copy

100000000001

樣例輸出 copy

2049

提示(1) 整數運算盡量避免pow之類的double型別函式,以免截斷取整帶來錯誤。 (2)可使用遞推思想,充分利用中間結果。類似思想可參考秦九韶演算法。秦九韶演算法是中國南宋時期的數學家秦九韶提出的一種多項式簡化演算法。計算一次多項式f(x) = a0xn + a1x(n-1) + … + an 只需要n次乘法和n次加法。原理是一次多項式f(x)可寫成如下加括號方式:f(x) =(( (a0*x + a1)*x + a2) * x + … an-1) * x + an。自內向外去括號計算,只需要n次乘法和n次加法。

本題從高位到低位依次輸出二進位制數,對應多項式係數a0, a1,…,an, 而x的值為2。遞推過程如下:

d = 0;

while( ch = getchar(), ch != 『\n』)

d = d * 2 + (ch - 『0』);

#include

intmain()

printf

("%d\n"

,n);

return0;

}

1068 二進位制數

time limit 1 sec memory limit 128 mb submit 4511 solved 3077 submit status web board 將乙個二進位制數,轉換為對應的十進位制數。輸入乙個二進位制數,以回車結束。該二進位制數為正數,長度不超過31。輸出乙個整數,為該二...

zzuli 1068 二進位制數

題目描述 將乙個二進位制數,轉換為對應的十進位制數。輸入輸入乙個二進位制數,以回車結束。該二進位制數為正數,長度不超過31。輸出輸出乙個整數,為該二進位制數對應的十進位制數。樣例輸入 copy 100000000001樣例輸出 copy 2049提示 1 整數運算盡量避免pow之類的double型別...

ZZULIOJ 1068 二進位制數

將乙個二進位制數,轉換為對應的十進位制數。輸入乙個二進位制數,以回車結束。該二進位制數為正數,長度不超過31。輸出乙個整數,為該二進位制數對應的十進位制數。000000000012049int main printf d n d return 0 tips 可以使用遞推思想,充分利用中間結果。類似思...