实验要求:编写一个java应用程序。用户从键盘输入一个0~99999的数,程序将判断这个数是几位数,并判断这个数是否为回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,如12121,3223都是回文数。
import java.util.Scanner;
public class Number {
public static void main(String[] args) {
int number = 0,d5,d4,d3,d2,d1;
Scanner reader = new Scanner(System.in);
System.out.println("输入一个1至99999之间的数");
number = reader.nextInt();
if(number>=1&&number<=99999){ //判读number在1至99999之间的条件
d5 = number/10000; //计算number的最高位(万位)d5
d4 = number/1000-d5*10;
d3 = number/100-d5*100-d4*10;
d2 = number%100/10; //number/10-d5*1000-d4*100-d3*10;
d1 = number%10;
if(d5!=0){
System.out.println(number+"是5位数");
if(d5==d1 && d4==d2){
System.out.println(number+"是回文数");
}else{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0){
System.out.println(number+"是4位数");
if(d4==d1&&d3==d2){
System.out.println(number+"是回文数");
}else{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0){
System.out.println(number+"是3位数");
if(d3==d1){
System.out.println(number+"是回文数");
}else{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0){
System.out.println(number+"是2位数");
if(d1==d2){
System.out.println(number+"是回文数");
}else{
System.out.println(number+"不是回文数");
}
}
else if(d1!=0){
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else{
System.out.printf("\n%d不在1至99999之间",number); //这里必须是printf
}
}
}
实验二
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
Random random = new Random();
System.out.println("给你一个1至100之间的整数,请猜测这个数");
int realNumber = random.nextInt(100)+1;
System.out.println(realNumber);
int yourGuess = 0;
System.out.print("输入您的猜测");
while(yourGuess!=realNumber){
if(yourGuess>realNumber){
System.out.print("猜大了,再输入你的猜测");
yourGuess = reader.nextInt();
}
else if(yourGuess<realNumber){
System.out.print("猜小了,再输入你的猜测");
yourGuess = reader.nextInt();
}
}
System.out.println("猜对了!");
}
}