口袋妖怪幸福蛋道具:编程问题????

来源:百度文库 编辑:高校问答 时间:2024/05/05 18:59:10
日历编排是每400年为一个大周期,如今年的月、日、星期几,和400年前的完全一样。那么请你算出公元2006年至2406年间每个月的28号星期几的机会大一些? 请高手个详细点???

完善了一下
刚才的思路有点问题
思路:
非闰年365天,除以7余1
闰年366天,除以7余2
所以如果今年二月二十八日是星期一
下一年是非闰年,二月二十八日为星期二
如果是闰年,为星期三
我写了下面的代码
来统计这四百年每年的二月二十八日为星期几
num[0]为星期日,num[1]为星期一,递推
其它月份一样
// zd_19.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
int main(int argc, char* argv[])
{
argv[1]="123";
int num[9]={0};
int temp=0;
for(int i=2006;i<2406;i++)
{
if((i%4+1)==0 || (i%100+1)==0)
{
num[(temp+7)%7]++;
num[(temp+3)%7]++;
num[(temp+3)%7]++;
num[(temp+6)%7]++;
num[(temp+1)%7]++;
num[(temp+4)%7]++;
num[(temp+6)%7]++;
num[(temp+2)%7]++;
num[(temp+5)%7]++;
num[(temp+7)%7]++;
num[(temp+3)%7]++;
num[(temp+5)%7]++;
}
else
{
num[(temp+6)%7]++;
num[(temp+2)%7]++;
num[(temp+2)%7]++;
num[(temp+5)%7]++;
num[(temp+0)%7]++;
num[(temp+3)%7]++;
num[(temp+5)%7]++;
num[(temp+1)%7]++;
num[(temp+4)%7]++;
num[(temp+6)%7]++;
num[(temp+2)%7]++;
num[(temp+4)%7]++;
}
temp++;
}

for(i=0;i<7;i++)
{
printf("%d\n",num[i]);
}
return 0;
}
输出结果:
685
685
687
685
686
686
686
Press any key to continue

所以得到结果
星期二出现的机会最大

这个我真还不知道,呵呵
我也等答案