借助java語言,運用遞歸算法計算整數n的二進製表示中1的個數
/ *使用遞歸算法計算 *整數N的二進製表達式 *中的“ 1”的數量。 *注意:如果n是奇數,則 *結果 *結果是N/2加1的結果。該程序使用BIT操作來*提高效率,儘管似乎不是必需的,但是我認為的想法很好。 *該程序由Zewang Zhang編寫,在 * 2015-5-4,在Sysu宿舍中。 */公共類CACLATENUMBERINBINAL EXPEXPRESSION {// MAIM方法。 public static void main(string [] args){例如,使n等於13,結果顯示3 system.out.println(numofeven(13)); //例如,使N等於128,結果顯示1 System.out.println(numofeven(128)); } // numofeven的靜態方法是遞歸方法。 public static int numofeven(int x){//遞歸的基礎。如果(x == 0){返回0; } //如果x是奇數。否則if(x%2!= 0){返回numofeven(x >> 1)+1; } //如果x為偶數0。else {while(x%2 == 0){x =(x >> 1); }返回numofeven(x); }}}}
來個最簡單的,不過未測試::
public int a(int i){if(i == 0 || i == 1)返回i;返回i%2+a(i/2);}
以上所述就是本文的全部內容了,希望大家能夠喜歡。