给你一个非负整数 num
,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
//函数名:执行
//函数功能:递归
//函数参数:原始数字(num),次数(cnt)
//返回值:返回执行次数
int action(int num,int cnt)
{
if(num!=0)
{
if(!(num&1))
{
num=num/2;
cnt++;
}
else
{
num=num-1;
cnt++;
}
cnt=action(num,cnt);
}
return cnt;
}
int numberOfSteps(int num){
int cnt=0;
cnt=action(num,cnt);
return cnt;
}