Đượ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