java小练习

时间:2023-03-10 01:40:37
java小练习

打印99乘法表

因为有9行9列,所有要用两个for循环

        int m;

        for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
} System.out.println();
}

水仙花数

三位数中每位数字的立方 和等于该数字

要取出每位数字,算出3个数字的立方和,然后判断是否相等

		for (int i = 100; i < 1000; i++) {
int n=i%10;
int m=i/10%10;
int k=i/100;
if (m*m*m+n*n*n+k*k*k==i) {
System.out.println(i);
}
}

 输入一个数字 判断该数字是不是回文数(利用数组完成)

首先确定输入数字是几位数 将每位数字取出输入数组

利用 判断首尾一次是否相等 来确定该数字是否是回文数

int m=scanner.nextInt();
int n=m;
int count=0;
while (n>0) {
n/=10;
count++;
}
System.out.println(count);
int [] arr = new int[count];
for (int i = 0; i < count; i++) { int p=m%10;
m=m/10;
System.out.print(p);
arr[i]=p;
}
for (int i = 0,j=arr.length-1; i < j; i++,j--) {
if(arr[i]!=arr[j]){
System.out.println("不是回文数");
return;
}
}
System.out.println("是回文数");

  输入一个数字,在已知数组内查找是否有该数字;如果存在,则输出数字下标;如果不存在,则输出-1.(利用二分法查找

int[] arr = {0,1,2,3,4,5,6,7,8,9};
Scanner in = new Scanner(System.in);
System.out.print("请输入一个数字:");
int num = in.nextInt(); int start = 0; // 默认起始坐标
int end = arr.length-1; // 默认结尾坐标
int index = -1; // 找不到默认index为-1
while(start<=end){
int middle = (start+end)/2; // 计算中间下标
if(num == arr[middle]){
index = middle;
break;
} if(num > arr[middle]){
start = middle + 1;
} if(num < arr[middle]){
end = middle - 1;
}
}
System.out.println(index);