14. C++ 백준 2754 번 윤년. feat.비교 연산자. || , &&, and, or
안녕하세요 코딩하는 강아지 덕구입니다!
C++ 백준 2754 번 입니다!
https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
문제
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
아래는 답 입니다!
#include<iostream>
using namespace std;
int main(){
int A;
cin>>A;
if(A%4 == 0 && A%100 !=0 || A%400 == 0) cout<<1;
else cout<<0;
return 0;
}
&&연산자와 || 연산자를 알아야 됩니다!
&&연산자는 조건문 && 조건문의 형식이며 (and 연산자라고 읽습니다!)
두 조건이 참일때 1을 반환합니다!(참을 반환). 프로그래밍에서 1은 참을 뜻 합니다!
둘중 하나라도 거짓이면 0을 반환합니다!(거짓을 반환). 프로그래밍에서 0은 거짓을 뜻 합니다!
|| 연산자는 조건문 || 조건문의 형식이며 (or 연산자라고 읽습니다.)
둘중 한 조건만 참이여도 (둘다 참이여도 됨) 1을 반환합니다!
둘다 거짓이면 0을 반환하죠!
이와같이 비교해서 참 거짓을 나타내는 연산자를 비교 연산자라고 합니다!
문제에서 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때라고 말했음으로
4의 배수인지 확인하는 조건문 && 100의 배수가 아닌지 확인하는 조건문 || 400의 배수인지 확인하는 조건문
3개의 조건을 &&, ||를 이용해 연산하고 참이면 1, 거짓이면 0 으로 출력하면 됩니다!
1. 어떤 숫자가 4의 배수인지 확인하려면 4로 나눴을때 0이 나오면 되므로 숫자 % 4 == 0
(== 비교 연산자중 하나입니다. 조건문 == 조건문 형식이며 양쪽이 같으면 1 다르면 0을 반환합니다.)
2. 100의 배수가 아닌지 확인하려면 숫자를 100으로 나누고 나머지가 0이 아니면 됩니다!
(! 는 not 을 뜻 합니다! 부정하는데 쓰입니다!)
조건문 != 조건문 은 양쪽이 같으면 0, 다르면 1을 반환한다.
3. 400의 배수인지 확인하려면 마찬가지로 400으로 나누고 0이 나오는지 확인하면 됩니다!
숫자 %400 == 0
4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수인 숫자의 조건은
(A%4 == 0 && A%100 !=0 || A%400 == 0) 이렇게 됩니다!
이상 C++ 백준 2754 번 이었습니다!
감사합니다!