这道题不难,计算好总天数然后对7取余数看看是不是3就知道是不是大扫除那天。如果不是大扫除直接减去大扫除的天数再对4取模就知道该谁扫地了。
#include <stdio.h>int main(){ int m[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int year,month,day; int i; while(scanf("%d %d %d",&year,&month,&day)!=EOF) { for(i = 0;i < month-1;i++) day+=m[i]; day = day+(year-2007)*365-243;//计算总天数 if((year==2008&&month>2)||year>2008) day++; if(day%7==3) { printf("ALL\n"); continue; } int sum =(day-day/7);//减去all的天数 if(day%7>=3)//如果大于了3则有一天all没有计算到。 sum--; switch(sum%4) { case 1:printf("B\n");break; case 2:printf("X\n");break; case 3:printf("H\n");break; case 0:printf("P\n");break; } } return 0;}
计算特定日期是否为大扫除日及归属清扫者
本文介绍了一种算法,通过计算给定日期的总天数并进行模运算,来判断该日期是否为大扫除日,并确定当天负责清扫的人。
2352

被折叠的 条评论
为什么被折叠?



