짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기로 정했다.
N개의 정수가 주어지면 홀수인지 짝수인지를 출력하는 프로그램을 만들어 경재의 능력을 검증할 수 있게 도와주자.
첫 번째 줄에 숫자의 개수 N(1 <= N <= 100)이 주어진다.
두 번째 줄부터 N+1번째 줄에 걸쳐 홀수인지 짝수인지 확인할 정수 K (1 <= K <= 10^60)가 주어진다.
N개의 줄에 걸쳐 한 줄씩 정수 K가 홀수라면 'odd'를, 짝수라면 'even'을 출력한다.
힌트
1024는 2로 나누어지므로 짝수이고, 5931은 그렇지 않으므로 홀수이다.
#include <iostream>
using namespace std;
int main() {
int num;//입력 받을 문자열의 갯수
cin >> num;
for (int i = 0; i < num; i++) {//입력받은 문자열의 개수만큼
string s;
cin >> s;//문자열을 입력받고
// 문자열의 마지막 자리 숫자를 가져와서 정수로 변환
int last = s.back() - '0';
if (last % 2 == 0)//문자열의 마지막 자리 숫자가 짝수인지 판별
cout << "even" << endl;
else
cout << "odd" << endl;
}
return 0;
}
❣️문제 요약:
입력받은 문자열의 짝수, 홀수 여부 판단
🤔 생각해야 할 점
0 을 빼준다.✅ 0을 빼면 문자가 정수로 변환되는 이유
C++에서 문자 '0'의 ASCII 값은 48이며, 이를 빼면 해당 숫자의 정수 값이 된다.
예를 들어, 문자열 "123"에서 '3'을 가져와서 정수로 변환하고 싶다면, '3'의 ASCII 값인 51에서 '0'의 ASCII 값인 48을 빼면 정수 3이 된다.
대문자 ‘A’ 의 ASCII 값 = 65
소문자 ‘a’의 ASCII 값 = 97 (
- a→ 초기화)
int last = s.back() - '0';
문자열.back() 은 해당 문자열을 가장 끝의 문자를 가져오는 메소드이고 여기서 0을 빼주면 문자로 되어있던 숫자를 정수형으로 변환해준다.
if (last % 2 == 0)//문자열의 마지막 자리 숫자가 짝수인지 판별
cout << "even" << endl;
else
cout << "odd" << endl;