P1202 [USACO 1.1] 블랙 프 라이 데 이 13 일 금요일
13 그럼 13 일 금요일 이 다른 날 보다 적어 요?
이 질문 에 대답 하기 위해 서 는 한 달 13 일 월요일 부터 일요일 까지 의 횟수 를 계산 해 야 한다.내놓다 nn 년 주기 1900 년. 1 월. 1 동지 1900 + n - 1 년 12 월. 31 일 중 13 일이 월요일 부터 일요일 까지 떨 어 진 횟수.
여기에 네가 알 아야 할 것들 이 있다.
1、1900 년. 1 월. 1 월요일
2、4,6,11 화해시키다 9 월 유 3030 다른 달 2 달 도 있다 31 윤년 2 월 유 29 평년 2 월 유 28 하늘
3. 년도 4 윤년 그래서 1992 윤년 윤년 이 아니다.
4. 이상 의 규칙 은 세기 에 적합 하지 않다.되다 400 정 제 된 세기 의 해 는 윤년 이 고, 그렇지 않 으 면 평년 이다.그래서 1700, 1800, 1900, 2100. 평년 2000 년 은 윤년 이다.
입력 형식
하나의 정수 n。
출력 형식
토요일, 일, 일, 이, 삼, 사, 오 재 를 순서대로 수출 하 다. 13 일별 횟수.
입 출력 샘플
입력 \ # 1 복사
20
출력 \ # 1 복사
36 33 34 33 35 35 34
설명 / 제시
[데이터 범위] 네. 100% 의 데이터, 1 ≤ n ≤ 400.
제목 번역 은 NOCOW 에서 왔 다.
USACO Training Section 1.1
알고리즘 분석: 이 알고리즘 은 말 할 만 한 것 이 없습니다. 간단 한 시 뮬 레이 션 일 뿐 입 니 다. 문 제 를 쓰 는 것 은 대부분 사람들 이 윤년 에 대한 처리 가 비교적 나 쁜 것 을 보 는 것 입 니 다. 여기 서 비교적 적용 되 는 윤년 처리 방식 을 추천 합 니 다.
코드 구현:
#include
using namespace std;
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};//
int a[10];//
bool judge(int x) //
{
if(x%400==0||x%4==0&&x%100!=0)
return true;
return false;
}
int main()
{
int n;
cin>>n;
int sum=0;
for(int i=1900;i<=1900+n-1;i++)//
{
for(int j=1;j<=12;j++)//
{
a[(sum+13)%7]++;
sum+=month[j];
if(j==2&&judge(i)) sum++;//
}
}
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NOIP2015 향상팀 두 번째 문제 정보 전달 [도론]n명의 학우(번호 1부터 n까지)가 정보 전달 게임을 하고 있다.게임에서 모든 사람은 고정된 정보 전달 대상이 있는데 그 중에서 번호가 i인 학우의 정보 전달 대상은 번호가 Ti 학우이다. 게임이 시작되었을 때, 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.