|  | 
 
| 
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  给一个转换规则来转换数字 n:
 n 是奇数,n = 3n + 1
 n 是偶数,n = n / 2
 经过若干次转换后,n 会变成 1。
 
 现在给定 n,输出它转换到 1 需要的次数。
 Python 66 ms :
 
 
 复制代码class Solution:
    def digitConvert(self, n):
        r = 0
        while n != 1:
            n = (3 * n + 1 if n % 2 else n // 2)
            r += 1
        return r
 C++ 11 ms :
 
 
 复制代码class Solution
{
public:
    /**
     * @param n: the number n 
     * @return: the times n convert to 1
     */
    int digitConvert(int n)
    {
        int r = 0;
        while (n != 1)
        {
            n = (n % 2 ? 3 * n + 1 : n / 2);
            r++;
        }
        return r;
    }
};
 JavaScript 202 ms :
 
 
 复制代码/**
 * @param n: the number n 
 * @return: the times n convert to 1
 */
function digitConvert(n) {
    var r = 0;
    while (n != 1) {
        n = (n % 2 ? 3 * n + 1 : n / 2);
        r++;
    }
    return r;
}
 | 
 |