1068 二進位制數

2021-08-07 17:24:59 字數 772 閱讀 3630

time limit: 1 sec  

memory limit: 128 mb

submit: 4511  

solved: 3077

submit

status

web board

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

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

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

100000000001

2049

(1) 整數運算盡量避免pow之類的double型別函式,以免截斷取整帶來錯誤。

(2)可使用遞推思想,充分利用中間結果。類似思想可參考秦九韶演算法。秦九韶演算法是中國南宋時期的數學家秦九韶提出的一種多項式簡化演算法。計算一次多項式f(x) = a0*xn + a1*x(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');

****

#includeint main(void)

1068 二進位制數

1068 二進位制數 時間限制 1 sec 記憶體限制 128 mb 提交 11938 解決 8772 狀態 討論版 提交 命題人 admin 題目描述 將乙個二進位制數,轉換為對應的十進位制數。輸入輸入乙個二進位制數,以回車結束。該二進位制數為正數,長度不超過31。輸出輸出乙個整數,為該二進位制數...

zzuli 1068 二進位制數

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

ZZULIOJ 1068 二進位制數

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