题目描述
给出n个圆,保证任意两个圆都不相交
然后给出两个点(x1,y1),(x2,y2),从(x1,y1)->(x2,y2)画条曲线,问该曲线最少穿过多少次圆的弧?
#include#include #include typedef struct { double x; double y; double r; }circle; typedef struct { double x; double y; }point; int main() { int num,count=0; //printf("%lf",pow(2,4)); printf("请输入互不相交的圆的数目:"); scanf("%d",&num); circle roll[num]; point a,b; printf("请按顺序分别输入圆的x坐标,y坐标和半径n"); for(int i=0;i (roll[i].r+roll[j].r))||((sqrt(pow(roll[i].x-roll[j].x,2)+pow(roll[i].y-roll[j].y,2))) roll[i].r) { } else if(abs(roll[i].x-a.x)==roll[i].r) { double k1,k2; k1=(roll[i].y-a.y)/(roll[i].x-a.x); k2=(roll[i].y-b.y)/(roll[i].x-b.x); if(k1*k2<0) count++; } else { if(d1



