#include<iostream> #include<iomanip> #include<cstdio> //#define LOCAL using namespace std; double max(double a,double b,double c) { return a>b?(a>c?a:c):(b>c?b:c); } double min(double a,double b,double c) { return a<b?(a<c?a:c):(b<c?b:c); } int main(int argc,char **argv) { #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif int n; //相差一度所要的时间 double sm = 10./59.; double mh = 120./11.; double sh = 120./719.; //相差360度所要的时间 double _360sm = sm*360; double _360mh = mh*360; double _360sh = sh*360; //快乐的总时间 double sum; //快乐的开始时间和结束时间 double start_happy,end_happy; //相差n度所要的时间,以及不再相差n度以上相差的时间 double _nsm,_nsh,_nmh,not_nsm,not_nsh,not_nmh; while(cin>>n) { if(n==-1) break; sum = 0; _nsm = n*sm; _nsh = n*sh; _nmh = n*mh; not_nsm = _360sm-_nsm; not_nsh = _360sh-_nsh; not_nmh = _360mh-_nmh; start_happy = max(_nsm,_nsh,_nmh); end_happy = min(not_nsm,not_nsh,not_nmh); while(start_happy<=43200&&end_happy<=43200) { start_happy = max(_nsm,_nsh,_nmh); end_happy = min(not_nsm,not_nsh,not_nmh); if(start_happy<end_happy) sum += end_happy - start_happy; if(end_happy == not_nsm) { _nsm += _360sm; not_nsm += _360sm; }else if(end_happy == not_nsh) { _nsh += _360sh; not_nsh += _360sh; }else{ _nmh += _360mh; not_nmh += _360mh; } } printf("%.3lf\n",sum/43200*100); } return 0; }
