借助 Java 语言 , 运用递归算法计算整数 n 的二进制表示中 1 的个数
/. يستخدم البرنامج عملية البتات لتحسين فعالية ، على الرغم من أنها ليست ضرورية على ما يبدو ، لكن الفكرة التي أعتقد أنها جيدة. * تم تصنيع البرنامج بواسطة Zewang Zhang ، في * 2015-5-4 ، في مساكن Sysu. */الفئة العامة calculatenumberinbinixpression {// الطريقة الرئيسية. public static void main (string [] args) {// على سبيل المثال ، جعل n يساوي 13 ، وتظهر النتيجة 3 system.out.println (numofeven (13)) ؛ // على سبيل المثال ، Make N Equals 128 ، تعرض النتيجة 1 system.out.println (numofeven (128)) ؛ } // الطريقة الثابتة لـ numofeven هي الطريقة العودية. int static int numofeven (int x) {// قاعدة العودية. if (x == 0) {return 0 ؛ } // إذا كان x غريبًا. آخر إذا (x ٪ 2! = 0) {return numofeven (x >> 1) +1 ؛ } // إذا كان x هو حتى ما عدا 0. آخر {بينما (x ٪ 2 == 0) {x = (x >> 1) ؛ } إرجاع numofeven (x) ؛ }}}
: : : : :
public int a (int i) {if (i == 0 || i == 1) return i ؛ إرجاع I ٪ 2+A (I/2) ؛}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。