2481. 分割圆的最少切割次数
难度:简单
时间:2023/06/17
圆内一个 有效切割 ,符合以下二者之一:
- 该切割是两个端点在圆上的线段,且该线段经过圆心。
- 该切割是一端在圆心另一端在圆上的线段。
一些有效和无效的切割如下图所示。
给你一个整数 n ,请你返回将圆切割成相等的 n 等分的 最少 切割次数。
示例 1:
输入:n = 4
输出:2
解释:
上图展示了切割圆 2 次,得到四等分。
示例 2:
输入:n = 3
输出:3
解释:
最少需要切割 3 次,将圆切成三等分。
少于 3 次切割无法将圆切成大小相等面积相同的 3 等分。
同时可以观察到,第一次切割无法将圆切割开。
提示:
1 <= n <= 100
解题思路:
一个圆分成 n 块,每一块的 度数为 360/n,只要它能凑齐几块一起合成180度,则分割次数 为 n/2 判断条件为 ;180 % (360/n)== 0
class Solution {
public int numberOfCuts(int n) {
return n > 1 && n % 2 == 1 ? n : n >> 1;
}
}
总结: 如果是奇数非 1,直接切一半则无法均分,需要切割和份数 n 相同的次数,也就是 n 次,都采用一端圆心,另一端圆上的方式 如果是偶数,则所有线过圆心,第一刀切成一半此后每刀按角度,在上下两个半圆切出对应的角度,比如分6份,第一刀在水平线,第二刀在上半圆60度,下半圆-60度,第三刀在上半圆120度,下半圆-120度,因此偶数次切割时为 n 的一半 特殊地,如果是 1 不用分割