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
    上傳者