धनात्मक पूर्णांक मान 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 → दिए गए वर्ष में विषम दिनों की संख्या की गणना के लिए फंक्शन घोषित करें
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 सेट करें
End
IF (cal_2)
temp -= cal_2 सेट करें
check_leap += cal_2 सेट करें
End
int final_days = temp + check_leap * 2 घोषित करें
int odd = final_days % 7 घोषित करें
odd लौटाएं
step 2 → main() में
int days = 500 घोषित करें
cal_odd(days) कॉल करें
Stop
उदाहरण
#include <iostream>
using namespace std;
// दिए गए वर्ष में विषम दिनों की संख्या की गणना
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