|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码 |
|