1100. Mars Numbers (20)

#include <bits/stdc++.h>
using namespace std;
int main(void)
{
    int n;
    cin >> n;
    getchar();
    string arr1[13] = {"tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"};
    string arr2[13] = {"tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
    string zero = "tret";
    while (n--)
    {
        int i;
        string temp;
        getline(cin , temp);
        if (temp[0] >= '0' && temp[0] <= '9')
        {
            int num = atoi(temp.c_str());
            if (num == 0)
            {
                cout << zero << endl;
                continue;
            }
            if (num / 13) cout << arr2[num/13];
            if (num / 13 && num % 13 != 0) cout << " ";
            if (num % 13 != 0)
                cout << arr1[num%13];
            cout << endl;
        }
        else
        {
            int num = 0;
            string tmp;
            if (temp.size() > 4)
            {
                int t1 = 0, t2 = 0;
                while (temp[t2] != ' ')
                {
                    t2++;
                }
                tmp = temp.substr(0, t2);
                for (i = 0; i < 13; i++)
                {
                    if (arr2[i] == tmp)
                    {
                        num += i * 13;
                        break;
                    }
                }
                t2++;
                tmp = temp.substr(t2);
                for (i = 0; i < 13; i++)
                {
                    if (arr1[i] == tmp)
                    {
                        num += i;
                        break;
                    }
                }
                cout << num << endl;
            }
            else
            {
                for (i = 0; i < 13; i++)
                {
                    if (arr1[i] == temp)
                    {
                        num += i;
                        break;
                    }
                }
                for (i = 0; i < 13; i++)
                {
                    if (arr2[i] == temp)
                    {
                        num += i * 13;
                        break;
                    }
                }
                cout << num << endl;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值