您的位置:首页 > 其它

关于2的倍数的题

2009-11-30 08:09 162 查看
/**
* 一、求2的几次方为2147483648
*
* 二、求2的31次方是几
*
* 用递归方法
*
*
* @author JRunner
*
* 2009-10-26
*
* Email:JRunner@126.com
*/
public class Test1 {
public static void main(String[] args) {
// (1题)求2的几次方为2147483648
System.out.println(c(30));
// (2题) 求2的31次方是几
System.out.println(col(31));
}
/*-----------------------------------------------------*/
private static int j;// 2的j次方
/**
* 返回2的N次方为2147483648中的N
*
* @param num
* j次方
* @return
*/
private static long c(long num) {
if (num == 1) {
return 0;
}
if (num == 0) {
return -1;// 表明输入有无
}
j++;
c(num / 2);
return j;
}
/*-----------------------------------------------------*/
/**
* 返回2的31次方
*
* @param n
* n次方
* @return
*/
private static long col(int n) {
if (n <= 0) {
return 1;
}
return 2 * col(n - 1);
}
/*-----------------------------------------------------*/
}
本文出自 “艾客” 博客,请务必保留此出处http://jrunner.blog.51cto.com/1015356/236713
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: