给你一个正整数n,重复进行以下操作:
1.如果n是奇数,令
2.如果n是偶数,令
重复上述直至n=0停止,请输出进行操作的次数,如果n永远无法变成零,输出-1
2
-1
1:2->1(2/2=1)2:1->-2(1-3=-2)3:-2->-1((-2)/2=(-1))4.-1->-4(-1-3=-4)5.-4->-2((-4)/2=(-2))6.-2->-1((-2)/2=(-1)).......开始进入第三步操作到第五步操作的循环,n永远无法等于0,所以返回-1。
9
3
1.9->6(9-3=6)2.6->3(6/2=3)3.3->0(3-3=0)三步操作后n变为0,所以返回3。
对于的数据,
对于的数据,
请返回最少操作数或者-1
/**
*
* @param n long长整型
* @return int整型
*/
int Numberofoperations(long long n ) {
// write code here
int c=0;
if(n%3!=0) return -1;
else
{
while (1)
{
if(n%2==0)
{
n/=2;
c++;
}
else
{
n=n-3;
c++;
}
if(n==0) return c;
}
}
} import java.util.*;
public class Solution {
/**
*
* @param n long长整型
* @return int整型
*/
public int Numberofoperations (long n) {
// write code here
int i=0;
while(n!=0){
if(n==-1){i=-1;break;}
if(n%2!=0){n=n-3;i++;}
if(n!=0){n=n/2;i++;}
}
return i;
}
}