借助 java 语言 , 运用递归算法计算整数 n 的二进制表示中 1 的个数
/ * Use el algoritmo recursivo para calcular * el número de "1" en la expresión binaria * de un número entero N. * Nota: Si n es un impar, entonces * el resultado es el resultado de N/2 más 1. * y El programa usa la operación de bit para * mejorar la eficencia, aunque aparentemente * no es necesaria, pero creo que la idea es buena. * El programa está escribido por Zewang Zhang, en * 2015-5-4, en dormitorios SYSU. */clase pública calculateNumberInbinaryExpression {// Método principal. public static void main (string [] args) {// Por ejemplo, hacer n igual 13, el resultado muestra 3 system.out.println (numOfeven (13)); // Por ejemplo, hacer n igual a 128, el resultado muestra 1 sistema.out.println (numOfeven (128)); } // El método estático de numOfeven es el método recursivo. public static int numofeven (int x) {// La base de recursiva. if (x == 0) {return 0; } // Si x es un impar. else if (x%2! = 0) {return numOfeven (x >> 1) +1; } // Si x es un incluso excepto 0. Else {while (x%2 == 0) {x = (x >> 1); } return numOfeven (x); }}}
来个最简单的 不过未测试 不过未测试 :)
public int a (int i) {if (i == 0 || i == 1) return i; devolver i%2+a (i/2);}
以上所述就是本文的全部内容了 希望大家能够喜欢。 希望大家能够喜欢。