猿问

有一个正整数n,a:可以除2, b:可以+1,可以减1。如何以最少步骤让n变成1

有一个正整数n。a:可以除2,b:可以+1,可以-1,如何以最少步骤让n变成1

浪漫小小青年
浏览 1384回答 2
2回答

stone310

是不是问了2道一样的问题..n=((n+1)/2)-((n-1)/2)

小王子抓猫咪

如果等于1,直接结束。否则,正整数n先除去2取余数,如果余数=1,那么将n-1。然后不断的除以2,最后就会得到1if(n==1){     return false; } if(n%2==1){     n = n-1;     while(n!=1){         n = n/2;     } }else{     while(n!=1){         n = n/2;     } }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答