將 m 進製的數 x 轉換為 n 進製的數輸出。
輸入: 輸入的第一行包括兩個整數: m 和 n(2<=m,n<=36) 。 下面的一行輸入乙個數 x,x 是 m 進製的數,現在要求你將 m 進製的數 x 轉換成 n 進製的數輸出。
輸出: 輸出 x 的 n 進製表示的數。
該題初看起來很像一般的進製轉換,但提示中明確告知,輸入會有較大的數 據,即我們為了完成本例需要的進製轉換,需要使用高精度整數。同時,考慮到 進製轉換的內容,我們的高精度整數需要進行以下運算:高精度整數與普通整數 的求積,高精度整數之間求和,高精度整數除以普通整數,高精度整數對普通整 數求模等。
#include
#include
#include
#define maxdigits 100
struct biginteger
void
set(
int x)
while
(x !=0)
;}void
output()
printf
("\n");
} biginteger operator*
(int x)
const
if(carry !=0)
return ret;
} biginteger operator +
(const biginteger& a)
const
if(carry !=0)
return ret;
} biginteger operator /
(int x)
const
ret.size =0;
for(
int i =
0; i < maxdigits; i++
)//若存在非零位,確定最高的非零位作為最高有效位
ret.size++
;return ret;
}int operator %
(int x)
const
return remainder;
//返回餘數
}}a,b,c;
char str[
10000];
char ans[
10000];
intmain()
else
a = a + b * t;
b = b * m;
}int size =0;
dowhile
(a.digit[0]
!=0|| a.size !=1)
;for
(int i = size -
1; i >=
0; i--
)printf
("%c"
, ans[i]);
printf
("\n");
}return0;
}
王道機試練習 高精度大整數加法
實現乙個加法器,使其能夠輸出 a b 的值。輸入 輸入包括兩個數 a 和 b,其中 a 和 b 的位數不超過 1000 位。輸出 可能有多組測試資料,對於每組資料,輸出 a b 的值。include include struct biginteger void set char str void o...
王道計算機機試練習 哈夫曼樹
題目描述 哈夫曼樹,第一行輸入乙個數 n,表示葉結點的個數。需要用這些葉結點生 成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即 weight,題目需要輸出 所有結點的值與權值的乘積之和。1 將所有結點放入集合 k。2 若集合 k 中剩餘結點大於 2 個,則取出其中權值最小的兩個結點,構造他 們同...
王道計算機機試練習 動態規劃完全揹包儲存罐
有乙個儲蓄罐,告知其空時的重量和當前重量,並給定一些錢幣 的價值和相應的重量,求儲蓄罐中最少有多少現金。由於每個錢幣的數量都可以有任意多,所以該問題為完全揹包問題。但是在該例中,完全揹包有兩處變化,首先,要求的不再是最大值,而變為了最小值,這就要求我們在狀態轉移時,在 dp j 和 dp j lis...