k863 - 清朝年號轉換
題目描述
題目要求將輸入的清朝年號和年份轉換為對應的西元年份。輸入包含一個清朝年號(字串)和一個年份(整數),程式需要根據年號找到其起始年份,然後加上輸入的年份減一,得到最終的西元年份。
解題思路
此題的核心是建立一個年號到起始年份的映射關係。可以使用 map 資料結構來儲存這個映射。map 允許我們使用年號作為鍵,快速地找到對應的起始年份。然後,根據題目描述,將輸入的年份加到起始年份上,並減去 1,即可得到西元年份。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <map>
using namespace std;
map<string,int>a={{"ShunZhi", 1644} ,{"KangXi", 1662} ,{"YongZheng", 1723} ,{"QianLong", 1736} ,{"JiaQing", 1796} ,{"DaoGuang", 1821} ,{"XianFeng", 1851} ,{"TongZhi", 1862} ,{"GuangXu", 1875} ,{"XuanTong", 1909}};
int main(){
string s;
int v;
cin >> s >> v;
cout << a[s]+v-1;
}