我们在距离为r1的直线上有两个点对象B和C,在点A处有r2个单位.在时间t = 0秒时,对象开始在圆形路径中移动,A在中心,角速度为v1和每秒v2度.
给定输入v1,v2,r1和r2,计算N秒后B和C之间的距离.我已经做到了,但它给出了错误的答案,任何人都可以建议我一个更好的解决方案.
#include"stdio.h"
#include"math.h"
int main()
{
float v1,v2,r1,r2,t;
scanf("%f%f%f%f%f", &v1, &r1, &v2, &r2, &t);
int diff = v1 > v2 ? (v1 - v2) : (v2 - v1);
int total_diff = diff * t;
if(total_diff % 360 == 0)
printf("%.2f", r2 - r1);
else if(total_diff % 180 == 0)
printf("%.2f", r1 + r2);
else if(total_diff % 90 == 0)
printf("%.2f", sqrt(pow(r2, 2) - pow(r1, 2)));
else
printf("%.2f", sqrt(pow(total_diff, 2) - pow(r2-r1, 2)));
}
Run Code Online (Sandbox Code Playgroud)
我接受了其他部分:https://math.stackexchange.com/questions/1727504/calculate-distance-between-two-points-on-concentric-circles
c ×1