zcmu 1756(數學模擬)
阿新 • • 發佈:2018-11-18
題目連結:http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1756
1、fmod函式:https://www.yiibai.com/c_standard_library/c_function_fmod.html
2、將x,y分解來看
3、將路線展開,來回在l或w來回一次為一個週期,用fmod取模。
#include<iostream> #include<cstdio> #include<cmath> using namespace std; #define PI acos(-1.0) int main(void) { int l,w,x,y,r,a,v,s; double tx,ty,vx,vy; while(cin>>l>>w>>x>>y>>r>>a>>v>>s) { if(l==0&&w==0&&x==0&&y==0&&r==0&&a==0&&v==0&&s==0) break; l-=r*2;w-=r*2; x-=r;y-=r; vx=v*cos(a*PI/180.0);vy=v*sin(a*PI/180.0); tx=x+fmod(fmod(vx*s,l*2)+l*2,l*2); ty=y+fmod(fmod(vy*s,w*2)+w*2,w*2); if(tx>=2*l) tx-=2*l; else if(tx>l) tx=l-(tx-l); if(ty>=2*w) ty-=2*w; else if(ty>w) ty=w-(ty-w); printf("%.2f %.2f\n",tx+r,ty+r); } return 0; }