# String Manipulation# Number System Conversion

b187 - 97七區資訊學科2(改編)

🔗 前往 ZeroJudge 原題

題目描述

題目要求將輸入的每一行 16 進位數轉換為對應的 10 進位數,並按照指定的格式輸出。輸入為兩位十六進位字串,輸出包含原始十六進位字串和轉換後的十進位數。

解題思路

程式碼直接讀取輸入的兩個字元的十六進位字串。然後,它根據每個字元的 ASCII 值計算出對應的數值,將第一個字元乘以 16,然後加上第二個字元的值,得到最終的十進位數。最後,程式按照題目要求的格式輸出結果。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
#include <string>
using namespace std;
int main(){
	string a;
	cout << "十六進位表示法  相對應的十進位表示法\n" ;
	while(cin >> a){
		int n=0;
		if(a[0]>='0'&&a[0]<='9')
			n+=a[0]-48;
		else
			n+=a[0]-55;
		n*=16;
		if(a[1]>='0'&&a[1]<='9')
			n+=a[1]-48;
		else
			n+=a[1]-55;	
		cout << "      " << a << "                 " << n << endl;
	}
}

Discussion