Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tính số ngày lẻ trong một số năm nhất định

Được đưa ra với giá trị nguyên dương n và nhiệm vụ là tạo ra số ngày lẻ cho đến năm n đã cho.

Ví dụ

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

Cách tính số ngày lẻ trong một số năm nhất định

Để tính số ngày lẻ, điều đầu tiên chúng ta cần kiểm tra là liệu năm đã cho có phải là năm nhuận hay không vì nếu đó là năm nhuận nhiều hơn số ngày lẻ sẽ bị thay đổi. Nếu năm chia hết cho 100 hoặc 400 mà không chia hết cho 4 thì năm đó sẽ là năm nhuận, còn năm đó sẽ là năm bình thường. Nếu chúng ta tìm ra môđun của tổng số ngày với 7, tức là số ngày trong một tuần. Vì vậy, năm bình thường bao gồm 1 ngày lẻ và năm nhuận bao gồm 2 ngày lẻ.

Phương pháp tiếp cận chúng tôi đang sử dụng trong chương trình nhất định như sau -

  • Nhập số ngày làm đầu vào
  • Kiểm tra xem năm đó là năm nhuận hay ngày thường
  • Tính số ngày lẻ bằng cách chia tổng số ngày với môđun
  • Hiển thị kết quả cuối cùng dưới dạng số ngày trong năm từ 1 đến n

THUẬT TOÁ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

Ví dụ

#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;
}

Đầu ra

number of odd days are : 5