这道题WA出翔了。。一开始没有考虑取余为0时的情况,到今天才知道是double eps的问题,精度的问题
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define eps 0.000001
char str[7][15]={"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday"};
int main()
{
// freopen("1.txt","r",stdin);
// freopen("output.txt","w",stdout);
char s[15];
double v;
int i,j,m,v1;
long long l;
while(scanf("%s%lld%lf",s,&l,&v)!=EOF)
{
v1=(v*1000+eps);
// printf("%d\n",v1);
l=l*1000;
m=v1*48;
l%=m;
for(i=0;i<7;i++)
{
if(strcmp(s,str[i])==0)
{
j=i;
}
}
if(l==0) {i=j+6;}
else
{
for(i=j;;i++)
{
if((i%7)<5)
{
l=l-8*v1;
}
else l-=4*v1;
if(l<=0) break;
}
}
printf("%s\n",str[i%7]);
}
return 0;
}