b187 - 97七區資訊學科2(改編)
題目描述
題目要求將輸入的每一行 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;
}
}