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;
}
}