清華大學2023年機試 進製轉換 1080

2021-08-07 05:08:48 字數 1074 閱讀 3731

題目描述:

將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 解題思路 首先,第一反應是用遞迴解題,...