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