【阿里云在线编程】 54.简单题?

题目

题目传送门:传送门(点击此处)
在这里插入图片描述

题解

思路

从代码上来看,这题确实是挺简单。。。

思路一开始也是没有的,看到这题感觉自己萌萌的

  1. 首先,这道题目没读懂,我是从测试用例的预期结果来读懂题目的

  2. 在这一步一步的变化过程中已经出现了规律
    在这里插入图片描述

  3. 对应一下从1到10,我们不难发现规律

    把这些式子对其一下,规律会变得更加明显
    在这里插入图片描述
    这样再来看的话,很容易看出1-10的数字全部都是由 20、21、22、23 组成的,所以也就可以得出是4次

  4. 推理一下,就可以得出结果
    最少操作数就是 不大于 n 的 2 的最小次幂

code

package solution54;

class Solution {
    public int solution(int n) {
      if(n<2) return 1;
      else if(n<4) return 2;
      else if(n<8) return 3;
      else if(n<16) return 4;
      else if(n<32) return 5;
      else if(n<64) return 6;
      else return 7;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek-Banana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值