借助 Java 语言 , 运用递归算法计算整数 n 的二进制表示中 1 的个数
/ * Verwenden Sie den rekursiven Algorithme, um * die Anzahl von "1" im binären Ausdruck * einer Ganzzahl N. * Hinweis: Wenn n ein ungerade ist, dann ist das Ergebnis das Ergebnis von N/2 plus 1. * und Das Programm nutzt den Bit -Operation, um die Effizienz zu verbessern, obwohl es anscheinend * nicht notwendig ist, aber die Idee, die ich für gut halte. * Das Programm wird von Zewang Zhang, * 2015-5-4, in Sysu-Schlafsälen angewiesen. */public Class CalculateNumberinBinaryExpression {// Hauptmethode. public static void main (String [] args) {// zum Beispiel machen n gleich 13, das Ergebnis zeigt 3 System.out.println (numofeven (13)); // zum Beispiel mach n gleich 128, das Ergebnis zeigt 1 System.out.println (numofeven (128)); } // Die statische Methode von Numofeven ist die rekursive Methode. public static int numofeven (int x) {// die Basis der rekursiven. if (x == 0) {return 0; } // Wenn x ein ungerade ist. else if (x%2! = 0) {return numofeven (x >> 1) +1; } // Wenn x ein sogar außer 0 ist. Else {while (x%2 == 0) {x = (x >> 1); } return numofeven (x); }}}
来个最简单的 , 不过未测试)))
public int a (int i) {if (i == 0 || i == 1) return i; Rückgabe I%2+a (I/2);}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。 希望大家能够喜欢。