B4511 [四川青少年 C++ 算法设计大赛 2025] 圆的公切线

题目描述

平面上两个圆的位置关系有 6 种,每种情况两圆的公切线条数也不同。 设两圆半径分别为 $ r_1, r_2 $,两圆圆心距离为 $ d $,则 6 种情况分别为: - 内含:$ |r_1 - r_2| > d $,公切线条数为 $ 0 $; - 内切:$ |r_1 - r_2| = d $,公切线条数为 $ 1 $; - 相交:$ |r_1 - r_2| < d < r_1 + r_2 $,公切线条数为 $ 2 $; - 外切:$ r_1 + r_2 = d $,公切线条数为 $ 3 $; - 外离:$ r_1 + r_2 < d $,公切线条数为 $ 4 $; - 重合:$ |r_1 - r_2| = d = 0 $,公切线条数为无穷多。**注意**:重合是一种特殊情况,如果满足重合关系,就不再计其他关系。给出两圆的情况,求公切线条数。

输入格式

一行三个整数 $ r_1, r_2 $($ 0 \leq r_1, r_2 \leq 100 $)和 $ d $($ 0 \leq d \leq 100 $)。

输出格式

输出一个整数,表示公切线条数;如果公切线有无穷多条,输出 inf。

说明/提示

本题共有 25 组测试数据,每组测试数据 4 分。