洛谷 P1017 進製轉換

2022-03-16 22:17:32 字數 438 閱讀 6225

給你乙個數,讓你用負進製來進行表示。輸入是兩個數,乙個是要表示的數,另乙個是進製數。

看的題解,這個有點蒙。

首先答題思路就是用r來進行模運算,但是模的過程中可能出現負數,這個就不好了,我們需要從上一位來進行借1。

這裡把餘數從負數轉換為整數的方法是本身減去進製數(注意,這個進製數是負數,其實就是加上絕對值),然後商需要加1。

#include#include#includeusing namespace std;

void solve(int n, int r)

if(m>=10) m='a'+m-10;

else m+='0';

solve(n/r, r);

printf("%c", m);

return ;

}int main()

洛谷 P1017 進製轉換

題目描述 我們可以用這樣的方式來表示乙個十進位制數 將每個阿拉伯數字乘以乙個以該數字所處位置的 值減1 為指數,以10為底數的冪之和的形式。例如 123可表示為 1 10 2 2 10 1 3 10 0這樣的形式。與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以乙個以該數字所處位置的 值...

洛谷 P1017 進製轉換

我們可以用這樣的方式來表示乙個十進位制數 將每個阿拉伯數字乘以乙個以該數字所處位置的 值減1 為指數,以10為底數的冪之和的形式。例如 123可表示為 1 10 2 2 10 1 3 10 0這樣的形式。與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以乙個以該數字所處位置的 值 1 為指...

洛谷 P1017 進製轉換

傳送門 該題考察的較為基礎,雖然俺從前沒有學過負進製除法,但是自己短除取餘,找找規律即可 例如,15 2 7 1,但是,題目說餘數不能為負。餘數怎麼求呢,餘數 15 15 2 之所以得到負數,是因為 15 2的絕對值是小於 15的,且為絕對值的最大值。那麼,在餘數為負數時,我們讓商 1即可,即餘數 ...