OJ-1003 Redraiment的遭遇

来源:互联网 发布:yii框架连接数据库 编辑:程序博客网 时间:2024/05/16 01:36

Description

Redraiment的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。 今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,一次下去,每次都比上一次晚一天。 Redraiment可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。呵呵。 所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗?

Input

输入包括多组数据。 每组数据包括一行:redraiment到家的日期。 输入以0/0结束。

Output

对应每个输入包括一个输出。
为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退出的效果

0 0