Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 년 수에서 홀수 일 수를 계산하는 C++ 프로그램

<시간/>

양의 정수 값 n이 주어지고 주어진 연도 n까지 홀수 일 수를 생성하는 작업입니다.

예시

Input-: days = 500
Output-: number of odd days are: 5
Input-: days = 400
Output-: number of odd days are: 0

주어진 년 수에서 홀수일 수를 계산하는 방법

홀수일수를 계산하기 위해서는 먼저 주어진 연도가 윤년인지 아닌지를 확인해야 합니다. 윤년일 경우 홀수일수가 달라지기 때문입니다. 연도가 100 또는 400으로 나누어 떨어지지만 4로 나누어 떨어지지 않는 연도는 윤년이 되고 그렇지 않으면 평년이 됩니다. 우리가 7, 즉 일주일의 일 수로 총 일 수의 계수를 찾으면. 따라서 평년은 홀수 1일로 구성되고 윤년은 홀수 2일로 구성됩니다.

주어진 프로그램에서 사용하는 접근 방식은 다음과 같습니다. -

  • 일수를 입력으로 입력
  • 윤년인지 평년인지 확인
  • 총 일수를 모듈러스로 나누어 홀수일 계산
  • 최종 결과를 1에서 n까지의 일수로 표시

알고리즘

Start
Step 1-> Declare function to calculate number of odd days in a given year
   int cal_odd(int days)
   declare int cal_1 = days / 100
   declare int cal_2 = days / 400
   declare int check_leap = days >> 2
   declare int temp = days - check_leap
   IF (cal_1)
      set temp += cal_1
      Set check_leap -= cal_1
   End
   IF (cal_2)
      Set temp -= cal_2
      Set check_leap += cal_2
   End
   declare int final_days = temp + check_leap * 2
   Declare int odd = final_days % 7
   return odd
step 2->In main()
   Declare int days = 500
   call cal_odd(days)
Stop

예시

#include <iostream>
using namespace std;
//calculate number of odd days in a given year
int cal_odd(int days) {
    int cal_1 = days / 100;
    int cal_2 = days / 400;
    int check_leap = days >> 2;
    int temp = days - check_leap;
    if (cal_1) {
        temp += cal_1;
        check_leap -= cal_1;
    }
    if (cal_2) {
        temp -= cal_2;
        check_leap += cal_2;
    }
    int final_days = temp + check_leap * 2;
    int odd = final_days % 7;
    return odd;
}
int main() {
    int days = 500;
    cout<<"number of odd days are : "<<cal_odd(days);
    return 0;
}

출력

number of odd days are : 5