5. 나이계산*

zzzzwso·2023년 6월 5일
0

문제설명

주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요. 주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷 자리의 첫 번째 수가 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");
}
profile
HI there

0개의 댓글