高精度整數 6

2021-07-09 20:38:11 字數 1285 閱讀 8190

/*

題目1208:10進製 vs 2進製

題目描述:

對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。

例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。

輸入:乙個1000位(即10^999)以內的十進位制數。

輸出:輸入的十進位制數的二進位制逆序數。

樣例輸入:

173樣例輸出:

181*/

#include

#include

#define maxn 1010

#define min(a,b) a >= b ? b : a

#define max(a,b) a >= b ? a : b

struct bigint

void set(char str) }}

void set(int x)

}while(x);

if(sum || size == 0) digit[size++] = sum;

}bigint operator + (const bigint& b)

if(carry) ret.digit[ret.size++] = carry;

return ret;

}bigint operator + (int x)

return ret;

}bigint operator * (int x)

if(carry) ret.digit[ret.size++] = carry;

return ret;

}bigint operator / (int x)

for(i = size - 1; i >= 0; i--)

if(ret.digit[i])

ret.size++;

return ret;

}int operator % (int x)

return remainder;

}void output()

};char str[maxn];

int ans[10000];

int main()

while( !(a.digit[0] == 0 && a.size == 1) );

sum.init();

for(i = 0; i < size; i++)

sum.output();

}return 0;

}

高精度整數運算

問題描述 編寫乙個程式,進行高精度整數的加 減 乘運算。輸入兩個十進位製大整數m和 n m n最長可達 50位 根據要求計算運算結果並輸出。輸入形式 標準輸入上依次分行輸入以下內容 1.第一行輸入第乙個大整數m。m可能帶有負號,後面是最長可達 50位的數字序列。2.第二行只有乙個字元,可以是 分別代...

高精度整數 5

題目1190 大整數排序 題目描述 對n個長度最長可達到1000的數進行排序。輸入 輸入第一行為乙個整數n,1 n 100 接下來的n行每行有乙個數,數的長度範圍為1 len 1000。每個數都是乙個正數,並且保證不包含字首零。輸出 可能有多組測試資料,對於每組資料,將給出的n個數從小到大進行排序,...

高精度整數a b

實現乙個加法器,使其能夠輸出a b的值。輸入包括兩個數a和b,其中a和b的位數不超過1000位。可能有多組測試資料,對於每組資料,輸出a b的值。示例1 2 6 10000000000000000000 100000000000000000000000000000008 10000000000010...