测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题