在发布新的SE知识之前,先把几个简单的算法题顶上。
一、9x9乘法表(包含4种算法)
- do while() 正的 9X9
int i = 1;
int j = 1;
do {
j = 1;
while (j <= i) { //控制列
System.out.print(i + "*" + j + "=" + i*j + " ");
j++;
}
System.out.println("");
i++;
} while (i <= 9); //控制行
- 第二种 while 正的9X9
int i = 1;
int j = 1;
while (i <= 9) {
j = 1;
while (j <= i) {
System.out.print(i + "*" + j + "=" + i*j+ " ");
j++;
}
System.out.println("");
i++;
}
- 第一种 while 反的 9X9
int i = 9;
int j = 9;
while (i > 0) {
j = i;
while (i >= j && j > 0 || i <= j && j > 0) {
System.out.print(i + "*" + j + "=" + i*j+ " ");
j--;
}
System.out.println("");
i--;
}
- 第二种 do while 反的 9X9
int i = 9;
int j = 9;
do {
j = i;
while (i >= j && j > 0 || i <= j && j > 0) {
System.out.print(i + "*" + j + "=" + i*j+ " ");
j --;
}
System.out.println("");
i --;
}while (i > 0);
二、因式分解
while (num != 1) {
while (num % i == 0) {
System.out.print(i);
num = num / i;
if (num != 1) {
System.out.print("*");
} else {
System.out.print("");
}
}
i++;
}
}
三、斐波那契数列
int i = 0;
int j = 1;
int s = 1;
int k = 1;
System.out.print(s + " ");
while (k <= 30) {
s = i + j;
System.out.print(s + " ");
i = j;
j = s;
k++;
}
四、水仙花数
/*
判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO
说明: 水仙花就是一个数的每个数字的立方和等于它本身的数, 例如 153就是一个水仙
花数 1*1*1+5*5*5+3*3*3=153
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数,判断是否是水仙花数。");
int num = sc.nextInt();
int i = num / 100;
int j = (num - 100 * i) / 10;
int k = num - 100 * i - 10 * j;
int num1 = i * i * i + j * j * j + k * k * k;
if (num == num1) {
System.out.println("YES," + num + "是水仙花");
} else {
System.out.println("NO," + num + "不是水仙花");
}
五、逆序数值
/*
逆序数值
用户输入123456 展示654321
用户输入987654 展示456789
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int num = sc.nextInt();
while (num!=0) {
System.out.print(num % 10);
num /= 10;
}