标签:
1.从键盘输入两个整数,然后输出它们的平方值和立方值
在Java中,没有像C语言那样有一个专供接受键盘输入值的scanf函数,所以一般的做法是从键盘输入一行字符,保存到字符串s中,再将字符组成的字符串s转换为整型数据后返回
package mianshiti; import java.io.*; public class PrintResult { public static void main(String[] args) { Result result=new Result(); System.out.println("请输入一个整数:"); int a=InputData.getInt(); result.print(a); } } class InputData{//定义从键盘输入数据的类 static private String s=""; static public void input(){//从键盘输入一行字符,保存到字符串s中 BufferedReader bu=new BufferedReader(new InputStreamReader(System.in)); try{ s=bu.readLine();//读取一行,只返回回车符之前的数据内容 } catch(Exception e){} } static public int getInt(){//静态方法可直接用类名调用 input(); return Integer.parseInt(s);//将字符组成的字符串s转换为整型数据后返回 } } class Result{ void print(int d){ System.out.println(d+"的平方:"+d*d); System.out.println(d+"的立方:"+d*d*d); } }
2. 8,64,256都是2的阶次方数,判断一个整数是不是2的阶次方数。
如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面若干个0,。比如8就是1000,64就是1000000。如果将这个数减1后,再与该数做和(&)运算,则应该全为0(如,8与7,8的二进制数1000,7的二进制数111,它们做和运算即8&7==0的,所以推出,((d-1)&(d))==0)
package mianshiti; import java.io.*; public class PrintResult1 { public static void main(String[] args) { Result1 result=new Result1(); System.out.println("请输入一个整数:"); int a=InputData1.getInt(); result.print(a); } } class InputData1{//定义从键盘输入数据的类 static private String s=""; static public void input(){//从键盘输入一行字符,保存到字符串s中 BufferedReader bu=new BufferedReader(new InputStreamReader(System.in)); try{ s=bu.readLine();//读取一行,只返回回车符之前的数据内容 } catch(Exception e){} } static public int getInt(){//静态方法可直接用类名调用 input(); return Integer.parseInt(s);//将字符组成的字符串s转换为整型数据后返回 } } class Result1{ void print(int d){ if(((d-1)&d)==0&&(d!=0)) System.out.println("是2的阶次"); else System.out.println("不是2的阶次"); } }
标签:
原文地址:http://www.cnblogs.com/GumpYan/p/5735505.html