给定正整数值n,任务是生成直到给定年份n的奇数天数。
Input-: days = 500 Output-: number of odd days are: 5 Input-: days = 400 Output-: number of odd days are: 0
在计算奇数天数时,我们需要检查的第一件事是给定年份是否为leap年,因为如果是leap年,则奇数天数将发生变化。如果年份可以被100或400整除,但不能被4整除,则该年份将是the年,否则它将是普通年份。如果我们用7来计算总天数的模数,即一周中的天数。因此,普通年包括1奇数日,leap年包括2个奇数日。
我们在给定程序中使用的方法如下-
输入天数作为输入
检查年份是a年还是普通日
通过将天总数除以模数来计算奇数天
将最终结果显示为一年中从1到n的天数
Start Step 1-> 声明函数计算给定年份中的奇数天数 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; //计算给定年份中的奇数天数 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<<"奇数天是: "<<cal_odd(days); return 0; }
输出结果
奇数天是: 5