数字问题
给一个转换规则来转换数字 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;
}
页:
[1]