/*
題目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...