NC207716. 简单的变换
描述
输入描述
对于的数据,对于的数据,请返回最少操作数或者-1
示例1
输入:
2
输出:
-1
说明:
示例2
输入:
9
输出:
3
说明:
C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2020-08-13 21:12:36
/** * * @param n long长整型 * @return int整型 */ int Numberofoperations(long long n ) { // write code here int num = 0; while(n!=0){ if(n%2==1) n-=3; else n/=2; num++; if(n==-1) return -1; } return num; }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 412K, 提交时间: 2020-08-13 21:39:30
class Solution { public: long long n,x; int Numberofoperations(long long n) { x=0; while (n!=0) { if (n==1) { return -1; } if (n&1) n-=3; else n>>=1; x++; } return x; } };
Python3(3.5.2) 解法, 执行用时: 38ms, 内存消耗: 6544K, 提交时间: 2020-08-14 21:26:59
res = 0 n = int(input()) while n>0: if n%2==0: n = n//2 else: n = n-3 res +=1 if n!=0: print(-1) else : print(res)