笔记08 课后习题

1 编写一个应用程序,实现猜数字的游戏

 

//编写一个应用程序,实现猜数字的游戏
public class Guess {
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);		//创建一个Scanner对象;
		
		int a = (int) (100*Math.random()); 		//定义一个随机数;		
		System.out.println("请输入一个0---100以内的整数;");
		for( ; true; ){
			int x = s.nextInt();				//从键盘输入一个0---100以内的整数;
			if(x < 0 || x >= 100){
				System.out.println("您输入的结果不符合要求,请重新输入:");
			}else if (x == a ){
				System.out.println("您猜对了,这个数就是:" + a);
				break;
			}else if(x > a){
				System.out.println("您输入的结果过大,请重新输入:");
			}else if(x < a){
				System.out.println("您输入的结果太小了,请重新输入:");
			}					
		}
	}
}

 

2 用双重递归完成1!+2!+3!+ ...... +10!

 

public class Recall {
		public static void main( String[] args ) {			
			System.out.println("1! + 2! + 3! + ... + 10!" + " = " + m(10));
		}
				
		//编写一个 m() 方法, 调用双重递归 m(n) = f(n) + m( n - 1 ) 完成 m(n) = f(n) + f(n-1) + ... + f(1);
		public static int m(int n){
			if( n == 1 ){
				return 1;
			}else{
				return f(n) + m( n - 1 );
			}
		}
		//编写方法,利用递归求出 f(n) = n! 即f(n) = n * f(n-1) ;
		public static  int f( int n ){
			if( n == 1 ) {
				return 1;	//末端,它是递归出口。
			}else{
				return  n * f( n - 1 );  //在此出现了调用方法本身的现象。
			}
		}		
}

3 编写一个JAVA应用程序,实现十进制整 与 二进制、八进制、十六进制的转换

 

//编写一个JAVA应用程序,实现十进制整数转换成二进制、八进制、十六进制整数,并输出转换后的结果

public class Trans {
	public static void main(String args[]){
		
		int a = (int)(100*Math.random()) ;		//	产生一个0-100之间的随机整数数a;
		System.out.println("产生一个随机数a = " + a );
		
		System.out.println("转换成2进制数a2 = " + trans2(a) );
		System.out.println("转换成8进制数a8 = 0" + trans8(a) );
		System.out.println("转换成8进制数a16 = 0x" + trans16(a) );
	}
	public static String trans2(int a){
		String a2 = "";
		int t = 0;
		while( true ){
			t = a%2;
			a2 = t + a2 ;
			a = a/2; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a2;
	}
	
	public static String trans8(int a){
		String a8 = "";
		int t = 0;
		while( true ){
			t = a%8;
			a8 = t + a8;
			a = a/8; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a8;
	}
	public static String trans16(int a){
		String a16 = "";
		String t1 = "";
		int t = 0;
		while(true){
			
			t = a%16;
			switch(t){
				case 10 :	t1 = "A";	break;
				case 11 :	t1 = "B";	break;
				case 12 :	t1 = "C";	break;
				case 13 :	t1 = "D";	break;
				case 14 :	t1 = "E";	break;
				case 15 :	t1 = "F";	break;
				default : 	t1 = "" + t;
			}
			a16 = t1 + a16;
			a = a/16; 
			if(a==0){
				break;
			}
		}
		//	System.out.println("转换成2进制数a2 = " + a2 );
		return a16;
	}
}


 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值