Redraiment的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。 今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,一次下去,每次都比上一次晚一天。 Redraiment可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。呵呵。 所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗?
输入包括多组数据。 每组数据包括一行:redraiment到家的日期。 输入以0/0结束。
对应每个输入包括一个输出。 为redraiment回家后停电的天数(包括到家那天)。
#include <stdio.h> #include <stdlib.h> int main() { int day[20],a,b,n,i,num; day[0]=0; for(i=1;day[i-1]<62;++i) { day[i]=day[i-1]+i+1; } num=i-2;//最后一个实际上已经不符合要求 while(1) { scanf("%d/%d",&a,&b); if(a==0&&b==0) break; n=(a-7)*31+b-1; for(i=0;n>day[i];++i); printf("%d\n",num-i+1); } return 0; } 参考一位学长的答案后改进: #include <stdio.h> #include <stdlib.h> int main() { int day[20],a,b,n,i,num; day[0]=0; for(i=1;day[i-1]<62;++i) { day[i]=day[i-1]+i+1; } num=i-2;//最后一个实际上已经不符合要求 while(scanf("%d/%d",&a,&b),a+b) { n=(a-7)*31+b-1; for(i=0;n>day[i];++i); printf("%d\n",num-i+1); } return 0; } while语句中运用逗号表达式可以达到输入为0退出的效果