题解:P13628 [NWRRC 2021] Anno Domini 2022

· · 题解

题意

给定两个年份,求出它们的差。

思路

分类讨论,不难得到如果两个年份类型相同(都是公元前或公元),它们的差就是两个年份相减的绝对值;如果它们类型不同,则差值为两个年份相加减去一。

实现

通过读取字符串来判断年份类型,使用变量标记它们的类型。再通过分类逐为读取字符串存储为整数。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    string a,b,c,d;
    int n1 = 0,n2 = 0,y1,y2; 
    cin>>a>>b>>c>>d;
    if(a[0] == 'A') {
        for(int i = 0;i < b.length() ;i++) {
            n1 = n1*10+int(b[i]-'0');
        }
        y1 = 1;
    } else {
        for(int i = 0;i < a.length() ;i++) {
            n1 = n1*10+int(a[i]-'0');
        }
        y1 = 2;
    } 
    if(c[0] == 'A') {
        for(int i = 0;i < d.length() ;i++) {
            n2 = n2*10+int(d[i]-'0');
        }
        y2 = 1;
    } else {
        for(int i = 0;i < c.length() ;i++) {
            n2 = n2*10+int(c[i]-'0'); 
        }
        y2 = 2;
    } 
    if(y1 == y2) cout<<abs(n1-n2);
    else cout<<n1+n2-1;
}