3 条题解

  • 0
    @ 2026-3-25 15:38:38

    纯数学知识:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    typedef struct circle
    {
        int x, y, r;
    }circle;
    
    
    double distance(circle *A, circle *B){
        int dx = A->x-B->x;
        int dy = A->y-B->y;
        return sqrt(dx*dx + dy*dy);
    }
    
    int main() {
        int n;
        scanf("%d" ,&n);
        while(n--){
            circle A, B;
            scanf("%d %d %d", &A.x, &A.y, &A.r);
            scanf("%d %d %d", &B.x, &B.y, &B.r);
            double d = distance(&A, &B);
            if(d > (A.r + B.r)){
                printf("4\n");
            }
            else if (d == (A.r + B.r))
            {
                printf("3\n");
            }
            else if (d > abs(A.r - B.r)&& d < (A.r + B.r))
            {
                printf("2\n");
            }
            else if (d == abs(A.r - B.r))
            {
                printf("1\n");
            }
            else
            {
                printf("0\n");
            }
        }
        return 0;
    }
    

    信息

    ID
    1038
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    208
    已通过
    33
    上传者