一、题目
二、解题思路
方法一:
- 输入整型数字,除以 100 是年份,取余 100 是月份;
- 如果年份大于 100 ,直接输出即可;
- 否则表示只写了年份后两位:如果年份小于 22 ,则用 20 补全输出,否则用 19 补全输出。
方法二:
- 同方法一;
- 如果年份小于 100 :如果年份小于 22 加上 2000 ,否则加上 1900 ;
- 输出年份和月份。
三、代码
方法一:
#include<iostream>
using namespace std;
int main()
{
int x;
cin>>x;
int year=x/100;
int month=x%100;
if(year>100)
{
printf("%d-%02d",year,month);
}
else
{
if(year<22)
{
printf("20%02d-%02d",year,month);
}
else
{
printf("19%d-%02d",year,month);
}
}
return 0;
}
方法二:
#include<iostream>
using namespace std;
int main()
{
int x;
cin>>x;
int year=x/100;
int month=x%100;
if(year<100)
{
if(year<22)
{
year+=2000;
}
else
{
year+=1900;
}
}
printf("%d-%02d",year,month);
return 0;
}
四、总结
- 通过除以 100 和取余 100 ,分别获取年份和月份。
- 通过判断年份是否大于 100 ,来判断年份是几位数。
- 第一种方法的年份若是一位数,输出时用 0 补全。
- 当月份是一位数时,用 0 补全。