A26390. 汽车牌照
填空题
困难
知识点
题目描述
汽车牌照
题目描述
作为汽车行驶的重要身份标志——汽车牌照也是越来越不够用了,从最早的十进制发展到三十六进制了,以前的一个汽车牌照“888888”,而现在的牌照变成了形如“A3GH11”。
三十六进制以大写字母 A 到 Z 表示数码 10 到 35。
请计算前后两辆汽车的牌照,在十进制下差多少?
输入格式
输入两行:
第一行为第一辆车的牌照
第二行为第二辆车的牌照
输出格式
共一行,表示两辆汽车牌照在十进制下的差的绝对值。
输入样例#1
888888
888889输出样例#1
1输入样例#2
888880
88888A输出样例#2
10说明提示
数据保证输入车牌转换成十进制后不超过 long long 范围。
参考答案
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
long long convertToDecimal(const string &plate) {
long long result = 0;
for (char c : plate) {
int value;
if (isdigit(c)) {
value = c - '0';
} else {
value = toupper(c) - 'A' + 10;
}
result = result * 36 + value;
}
return result;
}
int main() {
string plate1, plate2;
cin >> plate1 >> plate2;
long long num1 = convertToDecimal(plate1);
long long num2 = convertToDecimal(plate2);
cout << abs(num1 - num2) << endl;
return 0;
}
上一题
下一题