가우스 일기

제목: 고 스 일기 대수학자 고 스 는 어떻게 든 일 기 를 쓰 는 좋 은 습관 이 있다.그의 일 기 는 남 다른 점 이 있다. 그 는 연월일 을 밝 히 지 않 고 하나의 정수 로 대체 했다. 예 를 들 어 4210 후에 사람들 은 그 정수 가 바로 날짜 라 는 것 을 알 게 되 었 다. 그것 은 그날 이 고 스 가 태 어 난 후 며칠 이라는 것 을 나타 낸다.이것 도 좋 은 습관 일 수도 있 습 니 다. 그것 은 항상 주인 에 게 일 깨 워 주 었 습 니 다. 날 이 또 하루 가 지나 고 얼마나 많은 시간 을 낭비 할 수 있 습 니까?고 스 는 1777 년 4 월 30 일 에 태 어 났 다.고 스 가 발견 한 중요 한 정리 일기 에 5343 이 라 고 표시 되 어 있 기 때문에 그날 은 1791 년 12 월 15 일이 라 고 계산 할 수 있다.고 스 가 박사 학 위 를 받 은 날 일 기 는 8113 이 라 고 표시 되 어 있 습 니 다. 고 스 가 박사 학 위 를 받 은 해 와 달 을 계산 해 보 세 요.
정 답 을 제출 하 는 형식 은 yyy - mm - dd 입 니 다. 예 를 들 어 1980 - 03 - 21 은 형식 에 따라 브 라 우 저 를 통 해 정 답 을 제출 하 십시오.메모: 이 날짜 만 제출 하고 다른 추가 내용 을 쓰 지 마 십시오. 예 를 들 어 설명 적 인 문자 입 니 다.
사실 이해 하기 쉽 습 니 다. 한 달 일 수 를 정의 하 는 배열 은 하나의 카운터 로 일 수 를 보존 합 니 다. 만약 에 일수 가 현재 달의 일수 와 같다 면 월 에 1 을 더 하고 일 수 는 1 을 더 합 니 다. 월 이 12 시 년도 에 1 을 더 하고 월 은 1 을 더 합 니 다. 년도 가 증가 한 후에 윤년 인지 아 닌 지 를 판단 하고 윤년 2 월 이면 29 일 로 배열 의 값 을 수정 하면 됩 니 다.
#include
using namespace std;

int leap(int x)        //        
{
    if(x%400==0||(x%4==0 && x%100!=0))
        return 1;
    return 0;
}

int main()
{
    int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int y=1777,m=4,n=30;       //    
    for(int i = 1;i<8113;i++)
    {

        if(n == a[m])     //n           
        {
            if(m==12 && n==31)
            {
                y++;
                m=1;
                n=1;
                if(leap(y))    //       ,       ,   2  29  
                {
                    a[2]=29;    
                }
                else
                {
                    a[2]=28;
                }
            }
            else
            {
                m++;       //          ,    ,           
                n=1;
            }
        }
        else
        {
            n++;    //     
        }
    }
    cout<"-"<"-"<return 0;
} 

좋은 웹페이지 즐겨찾기