codevs之旅:1474 十進位制轉m進位制
阿新 • • 發佈:2018-11-26
1474 十進位制轉m進位制 http://codevs.cn/problem/1474/
時間限制: 1 s
空間限制: 128000 KB
題目等級 : 白銀 Silver
題解
檢視執行結果
題目描述 Description
將十進位制數n轉換成m進位制數 m<=16
n<=100
輸入描述 Input Description
共一行
n和m
輸出描述 Output Description
共一個數
表示n的m進位制
樣例輸入 Sample Input
樣例1:10 2
樣例2:100 15
樣例輸出 Sample Output
樣例1:1010
樣例2:6A
資料範圍及提示 Data Size & Hint
用反向取餘法
解答:這個題之前應該使用java做過,現在用c++做幾分鐘就寫出來了。不得不說自己好像有點進步,哈哈。
核心思想其實就是除m取餘,之後把餘數從後向前組合就是轉化之後的數字。
程式碼如下:
#include<bits/stdc++.h> using namespace std; int main() { int n,m; int b=0; int i=0; cin>>n>>m; int a[100]; while(n!=0) { b = n%m; a[i] = b; i++; n = n/m; } for(int j=i-1; j>=0; j--) { if(a[j]==10) cout<<'A'; else if(a[j]==11) cout<<'B'; else if(a[j]==12) cout<<'C'; else if(a[j]==13) cout<<'D'; else if(a[j]==14) cout<<'E'; else if(a[j]==15) cout<<'F'; else cout<<a[j]; } return 0; }