藍橋杯演算法題庫 進位制轉換_16轉10進位制
阿新 • • 發佈:2018-12-23
藍橋杯演算法題庫 16轉10進位制
題目
問題描述
*問題描述 從鍵盤輸入一個不超過8位的正的十六進位制數字符串,將它轉換為正的十進位制數後輸出。
*注:十六進位制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
樣例輸入 FFFF 樣例輸出 65535
解題思路
1、將輸入的16進位制數用字元陣列儲存每一位;
2、十六進位制數按權展開、相加即得十進位制數。具體見圖
//java程式碼
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
char[] c = sc.next().toCharArray();
int[] n = new int[c.length];
long sum = 0;
for (int i = c.length - 1; i >= 0; i--) {
if (c[i] - '9' > 0) {
n[i] = c[i] - 'A' + 10;
} else {
n[i] = c[i] - '0';
}
}
//呼叫math.pow函式計算次方
for (int i = n.length - 1; i >= 0; i--) {
sum = sum + (long) (n[i] * Math.pow(16, n.length - 1 - i));
}
System.out.println(sum);
}