借助 Java 语言 , 运用递归算法计算整数 n 的二进制表示中 1 的个数
/ * Utilisez l'algorithme récursif pour calculer * le nombre de "1" dans l'expression binaire * d'un entier N. * Remarque: Si n est un impair, alors * le résultat est le résultat de n / 2 plus 1. * Et Le programme utilise l'opération de bits pour * améliorer l'efficacité, bien qu'il ne soit apparemment pas nécessaire, mais l'idée que je pense est bonne. * Le programme est organisé par Zewang Zhang, à * 2015-5-4, dans les dortoirs SYSU. * / classe publique CalculaTenumberInbinaryExpression {// Méthode principale. public static void main (String [] args) {// Par exemple, faire n équivaut à 13, le résultat montre 3 System.out.println (numoLoven (13)); // Par exemple, faire n équivaut à 128, le résultat montre 1 System.out.println (numoFeven (128)); } // La méthode statique de NumoFeven est la méthode récursive. public static int numoLoven (int x) {// La base de récursive. if (x == 0) {return 0; } // Si x est un étrange. else if (x% 2! = 0) {return numofEven (x >> 1) +1; } // Si x est un même sauf 0. Else {while (x% 2 == 0) {x = (x >> 1); } return numoLoven (x); }}}
来个最简单的 , 不过未测试 :)
public int a (int i) {if (i == 0 || i == 1) return i; retour i% 2 + a (i / 2);}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。