題目描述:
將m進製的數x轉換為n進製的數輸出。
輸入
輸入的第一行包括兩個整數:m和n(2<=m,n<=36)。
下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。
輸出
輸出x的n進製表示的數。
樣例輸入
16 10
f樣例輸出
15解題思路:
就是進製轉換,但是需要注意的是資料中會出現大整數,此時一般的先統一轉換為10進製再進行進製轉化的思路是不可行的,因為即使使用long long,其值也會溢位。因此,就該換乙個思路,直接對兩進製進行轉化,具體思路見參考鏈結。
注意點:之前的**中,沒將input存入int陣列中,而是直接在字串上進行操作,結果time limited exceed,修改之後就ac了,說明字串的操作速度還是遠大於普通的int陣列。
ac**:
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1010;
int m, n;
string input;
string output;
int data[maxn];
int calvalue(char x)
void init()
}string change(int num)
bool div()
output.insert(0, change(num));
return flag;
}void trans()
cout
//fclose(stdin);
return
0;}
參考部落格 清華大學考研複試機試 進製轉換
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 每行輸出對應的二進位制數。此題為大數轉換問題,通過模擬手工計算過程來實現。清華大學的考研複試機試經常為考察大整數問題...
清華大學考研複試機試 進製轉換2
將m進製的數x轉換為n進製的數輸出。輸入的第一行包括兩個整數 m和n 2 m,n 36 下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。輸出x的n進製表示的數。10 2 111011輸入時如有字母,則字母為大寫,輸出時如有字母,則字母為小寫。這道題其實和10進製...
清華大學2023年機試 遞推數列 1081
題目描述 給定a0,a1,以及an p a n 1 q a n 2 中的p,q。這裡n 2。求第k個數對10000的模。輸入 輸入包括5個整數 a0 a1 p q k。輸出 第k個數a k 對10000的模。樣例輸入 20 1 1 14 5 樣例輸出 8359 解題思路 首先,第一反應是用遞迴解題,...