您的位置:首页 > 大数据 > 人工智能

OJ-1003 Redraiment的遭遇

2017-02-04 17:39 351 查看

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退出的效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OJ