程序片段--2的乘方

   1. 2的10次方是多少?

    2.65536是2的多少次方?

    算着太累,折腾了一个小片段。

 1 public class Sum2 {
 2     final static  int count =2;
 3     //输入2的次方,获得2的次方的结果
 4     public static int sum2(int loop){
 5         int result=1;
 6         if(loop<0){
 7             return 1;
 8         }else{
 9             while(loop>0){
10                 result*=count;
11                 loop--;
12             }  
13         }
14               
15         return result;
16     }
17     //输入2的倍数,获得2的次方数
18     public static int sum3(int result){
19         int ct=0;
20 if(result % count != 0 || result<0){ 21 System.out.print("error = "); 22 return result; 23 }else{ 24 while(result != 1){ 25 result /= count ; 26 ct++; 27 } 28 } 29 return ct; 30 } 31 public static void main(String[] args) { 32 System.out.println(sum2(4)); 33 System.out.println(sum3(16)); 34 } 35 }

 

PS:判断一个数是否是2的次方---想法太牛了。

 1     //判断一个数是否是2的次方。
 2     public static boolean checked(int n)
 3     {
 4         if (n < 0)
 5             return false;
 6         if (n < 2)
 7             return false;
 8 
 9         return (n & (n - 1)) == 0;
10     }

 

 1 public static bool Check2(int num)
 2 {
 3     if (num == 1)
 4         return true;
 5     else
 6     {
 7         do
 8         {
 9             if (num % 2 == 0)
10                 num = num / 2;
11             else
12                 return false;
13         }
14         while (num != 1);
15         return true;
16     }
17 }

 

1     public static boolean checked(int x)
2     {
3         return (x != 0) && ((x & (x - 1)) == 0);
4     }

 

posted @ 2015-03-31 00:37  金色元年  阅读(378)  评论(0编辑  收藏  举报