ধনাত্মক পূর্ণসংখ্যা n দেওয়া থাকলে, n বছরের মধ্যে বিজোড় দিনের (odd days) সংখ্যা নির্ণয় করা এই প্রোগ্রামের কাজ।
উদাহরণ
Input-: days = 500 Output-: number of odd days are: 5 Input-: days = 400 Output-: number of odd days are: 0
বিজোড় দিন গণনা পদ্ধতি
বিজোড় দিন গণনার জন্য প্রথমে জানতে হবে bahawa বছরটি লিপইয়ার (leap year) কি না, কারণ লিপইয়ার হলে বিজোড় দিনের সংখ্যা পরিবর্তন হয়। বছরটি যদি ১০০ বা ৪০০ দিয়ে বিভাজ্য হয় কিন্তু ৪ দিয়ে না, তবে সেটি লিপইয়ার, অন্যথায় সাধারণ বছর। মোট দিনকে ৭ দিয়ে ভাগ করে বাকি (modulus) নির্ণয় করলে বিজোড় দিন পাওয়া যায়। সাধারণ বছরে ১টি বিজোড় দিন থাকে, লিপইয়ারে ২টি।
প্রোগ্রামে ব্যবহৃত পদ্ধতি:
- বছরের সংখ্যা ইনপুট নেওয়া
- বছরটি লিপইয়ার কি না সাধারণ কি তা যাচাই করা
- মোট দিনকে ৭ দিয়ে ভাগ করে বিজোড় দিন গণনা করা
- ১ থেকে 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 ঘোষণা return odd step 2→ main() এ 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