給你乙個數,讓你用負進製來進行表示。輸入是兩個數,乙個是要表示的數,另乙個是進製數。
看的題解,這個有點蒙。
首先答題思路就是用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即可,即餘數 ...