乐鑫02. 调整电平
某实验逻辑电路中,初始时有 cnt
个观测点处于低电平状态。
对于某个观测点的电平调整意味着:如果观测点处于低电平,会被调整为高电平;而观测点处于高电平,会被调整为低电平。
第 1 轮,每个观测点调整一次电平。即,所有观测点处于高电平;
第 2 轮,每两个观测点调整一次电平。即,第 1、3、5 ... 个观察点不调整,第 2、4、6 ... 个观察点调整;
第 3 轮,每三个观测点调整一次电平。即,第 1、2、4、5 ... 个观察点不调整,第 3、6 ... 个观察点调整;
第 i
轮,每 i
观测点调整一次电平。 而第 cnt
轮,你只调整最后一个观测点的电平。
请找出 cnt
轮之后有多少处于高电平状态的观测点。
示例 1:
输入:cnt= 4
输出:2
解释:
初始时, 电平状态为 [低, 低, 低,低],
第一轮后, 电平状态 [高, 高, 高, 高],
第二轮后, 电平状态 [高, 低, 高, 低],
第三轮后, 电平状态 [高, 低, 低, 低],
第四轮后, 电平状态 [高, 低, 低, 高],
最终有 2 个处于高电平状态的观测点,因此返回 2
示例 2:
输入:cnt = 0
输出:0
示例 3:
输入:cnt = 2
输出:1
自己的解法:无脑模拟,找到每个1-cnt中每个数的因子数量,最后判断每个数的因子数的奇偶,毫无疑问超时……等着比赛结束看大佬的题解,实在不太能理解
有没有大佬能指点一下写个题解:
大佬的解法是:
class Solution {
public:
int adjustLevel(int cnt) {
return int(sqrt(cnt));
}
};
有点看不懂为啥平方根就是结果了