一直以來對反覆平方法都是知道個大概意思,但是一直都處於混淆的狀態,今天總結一下。
網上通常看到的**是這個樣子的:
1int pow(int a, int
b) 8 r *=r;
9 b /= 2;10
}11return
result;
12 }
假設b為1011的話,列出來b運算過的部分 result r的結果是:
b運算過的部分 result r
0 1 a
1 a a^2
11 a*a^2 a^4
011 a*a^2 a^8
1011 (a*a^2)*a^8 a^16
第二種實現是《演算法導論》的實現,**是這個樣子的:
1int pow(int a, int
b) 8}9
return
result;
10 }
這個就比較好懂了,同樣以b=1011為例,result的值依次是a^1 , a^10 , a^101 , a^1011。可以看出來,這個才是真正「原汁原味的」反覆平方法
flume兩種寫法
1.全寫 bin flume ng agent conf conf name a1 conf file job flume netcat logger.conf dflume.root.logger info,console 2.簡寫 bin flume ng agent n a1 c conf f...
氣泡排序的兩種寫法
public static void main string args function1 a function2 a public static void function1 int a system.out.println system.out.println 第 i 1 次迴圈完成 syste...
全排列的兩種寫法
對於陣列 1,2,3 他們按照從小到大的全排列是 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 現在給你乙個正整數n,n小於8,輸出陣列 1,2,n 的從小到大的全排列。由出口遞迴回溯時,至少返回2層,第一次因為if語句,第二次因為不滿足for迴圈條件 include in...