주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요. 주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷 자리의 첫 번째 수가 1이면 1900년대생 남자이고, 2이면 1900년대생 여자, 3이면 2000년대 생 남자, 4면 2000년대생 여자이다.
올해는 2023년입니다. 해당 주민등록증 주인의 나이와 성별을 출력하세요.
첫 줄에 주민등록증 번호가 입력됩니다.
780316-2376152
첫 줄에 나이와 성별을 공백을 구분으로 출력하세요. 성별은 남자는 M, 여자는 W로 출력한다.
substr을 이용한 내 풀이
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cin >> str;
string year = str.substr(0, 2);
int i_year = stoi(year);
if (str[7] == '1' || str[7] == '2')
i_year += 1900;
else
i_year += 2000;
if (str[7] == '1' || str[7] == '3')
cout << 2019-i_year + 1 << " " << "M";
else
cout << 2019-i_year + 1 << " " << "W";
}
#include <stdio.h>
int main()
{
char arr[20];
scanf("%s", arr);
int year,age;
if (arr[7] == '1' || arr[7] == '2')
{
year = 1900 + ((arr[0] - 48) * 10 + (arr[1] - 48));
}
else
{
year = 2000 + ((arr[0] - 48) * 10 + (arr[1] - 48));
}
age = 2023 - year + 1;
printf("%d ", age);
if (arr[7] == '1' || arr[7] == '3')
printf("M\n");
else
printf("W\n");
}