两个javaSE 高频面试题
程序员文章站
2024-03-12 16:12:26
...
按如下规则输出10行:
1 4 2 4 9 6 3 6 9 16 12 8 4 8 12 16 25 20 15 10 5 10 15 20 25
public class Test {
public static void main(String[] args) {
int num = 4;
for (int i = 1; i <= num; i++) {
format(num ,i);
write(i);
}
}
public static void write(int i) {
for(int k =i ;k>0 ; k--){
System.out.print(k*i + " ");
}
for(int m=1;m<i;m++){
System.out.print((m+1)*i+ " ");
}
System.out.println();
}
public static void format(int num, int i) {
for (int k = 2 * (num - i); k >= 0; k--)
System.out.print(" ");
}
}
打印如下四边型:
输入一个数字:9
80 48 28 16 9 1
32 20 12 7 3 4
12 8 5 5 8 12
4 3 7 12 20 32
1 9 16 28 48 80
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入一个数字");
while (true) {
Scanner scanner = new Scanner(System.in);
int num = 0;
if (scanner.hasNextInt()) {
num = Integer.parseInt(scanner.next());
}
num = num / 2 + 1;
int[][] right = new int[num][num];
//
//1
//3 4
//5 8 12
//7 12 20 32
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++) {
if (j == 1) {
right[i - 1][j - 1] = 2 * i - 1;
} else {
right[i - 1][j - 1] = right[i - 2][j - 2] + right[i - 1][j - 2];
}
}
}
//
// 7 12 20 32
// 12 8 5
// 4 3
// 1
int[][] left = new int[num][num];
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
left[num - i - 1][num - j - 1] = right[i][j];
}
}
for (int i = 1; i <= num; i++) {
System.out.println();
for (int j = 1; j <= num; j++) {
if (left[i - 1][j - 1] != 0) {
System.out.print(left[i - 1][j - 1] + "\t");
} else {
System.out.print("\t");
}
}
for (int j = 1; j <= i; j++) {
System.out.print(right[i - 1][j - 1] + "\t");
}
}
}
}
}
上一篇: 详解JavaScript中的new操作符
下一篇: 哈夫曼树代码实现