AOJ0016
■問題
幾つかの移動歩数と回転角度が与えられます。
座標(0,0)地点で北向きに立っている状態から移動歩数分前に進み、回転角度分右に(負の値なら左)向きます。
それを入力が"0,0"になるまで続けた時の座標の整数部分を答えなさい。
■解法
移動歩数と角度がわかるため三角関数を使うことでxとyの移動距離がわかる。
あとはやるだけ
■ソース
#include<cstdio> #include<cmath> #include<algorithm> using namespace std; int main(void){ int w,a,ang=90; double x=0,y=0,r; while(1){ scanf("%d,%d",&w,&a); if(w==0 && a==0)break; r=(double)ang/180.0*M_PI; x+=cos(r)*w; y+=sin(r)*w; ang-=a; } printf("%d\n%d\n",(int)x,(int)y); }