实现一个函数,对一个正整数n,算得到1
生活随笔
收集整理的這篇文章主要介紹了
实现一个函数,对一个正整数n,算得到1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://bbs.csdn.net/topics/120115915
實現一個函數,對一個正整數n,算得到1?需要的最少操作次數:如果n?為偶數,將其
除以2;如果n?為奇數,可以加1?或減1;一直處理下去。
例子:
ret=func(7);
ret=4,可以證明最少需要4?次運算
n=7
n--6
n/2?3
n/2?2
n++1
要求:
實現函數(實現盡可能高效)int?func(unsign?int?n);n?為輸入,返回最小的運算次數。
給出思路(文字描述),完成代碼,并分析你算法的時間復雜度。
然后是偶數的話就除2,?是奇數的話(必須不為3)除4余1的話則減1,余3的話就加1.
if(n==2)?return?1;
if(n==3)?return?2;
if(n%2==0)
n/=2
else
if(n%4==1)
n--;
else
n++;
總結
以上是生活随笔為你收集整理的实现一个函数,对一个正整数n,算得到1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将二叉树的叶子结点转换成单链表,并返回最
- 下一篇: 两个数组包含