220 · 冰雹猜想(LintCode,算法,简单)

描述

数学家们曾提出一个著名的猜想——冰雹猜想。
对于任意一个自然数N,如果N是偶数,就把它变成N / 2;
如果N是奇数,就把它变成 3 * N+1。
按照这个法则运算下去,最终必然得1。
试问,该数通过几轮变换,会变成1呢?

1<=n<=1000

样例

样例 1:

输入: 
4
输出: 
2
解释: 
第一轮:4/2=2
第二轮:2/2=1
答案为2

C++:

class Solution {
public:
    /**
     * @param num: an integer
     * @return: an integer
     */
    int getAnswer(int num) {
        // write your code here.
        int step=0;
        while(num>1)
        {
            if(num%2==1)
                num=3*num+1;
            else
            {
                num=num/2;
            }
            step++;
        }
        return step;
    }
};

Accepted        100%

41 ms时间消耗        5.46 MB空间消耗        您的提交打败了73.20 %的提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值