[编程题] 搬圆桌
现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。
输入描述:
一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)
输出描述:
输出一个整数,表示答案
输入例子:
2 0 0 0 4
输出例子:
1
#include <iostream>
#include <algorithm>
using namespace::std ;
int main() {
int r, x, y, x1, y1 ;
while ( cin >> r >> x >> y >> x1 >> y1 ) {
int length = sqrt( pow( (double)x - (double)x1, (double)2 ) + pow( (double)y - (double)y1, (double)2 ) ) ;
int diag = r * 2 ;
int result = length / diag ;
cout << result << endl ;
}
return 0 ;
}
第二次做:
#include <iostream>
#include <algorithm>
using namespace::std ;
int main() {
int r, x, y, x1, y1 ;
while ( cin >> r >> x >> y >> x1 >> y1 ) {
int length = sqrt( pow( (double)x - (double)x1, (double)2 ) + pow( (double)y - (double)y1, (double)2 ) ) ;
int diag = r * 2 ;
int result = length / diag ;
cout << result << endl ;
}
return 0 ;
}