变换多姿的图案
- 十字型的徽標(遞歸)
package org.vo;
import java.util.Scanner;
public class text8 {/** 十字型的徽標*/public static void main(String[] args) {Scanner scann=new Scanner(System.in);int num=Integer.parseInt(scann.next());int num1=9+(num-1)*4;int arr[][]=new int[num1][num1];fun(arr,num1,0,2,1);show(arr);}public static void fun(int arr[][],int num,int x,int y,int k){if(num-x==1)return;for(int i=x;i<num-x;i++){for(int j=y;j<num-y;j++){arr[i][j]=k;arr[j][i]=k;}}k=k==1?0:1;fun(arr,num,x+1,y+1,k);}public static void show(int arr[][]){//打印for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){if(arr[i][j]==1){System.out.print(“$”);}else{System.out.print(“.”);}}System.out.println();}
}
}
2.打印一個 N*N 的方陣
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = Integer.parseInt(scanner.nextLine());int arr[][] = new int[num][num];for (int i = 0; i < num; i++) {for (int j = 0; j < num; j++) {arr[i][j] = 'T';}}for (int i = 1; i < num - 1; i++) {for (int j = 1; j < num - 1; j++) {arr[i][j] = 'J';}}fun(2, 2, arr, 1, num);show(arr);}public static void fun(int x, int y, int[][] arr, int count, int num) {if (num - x == 1)return;for (int i = x; i < num - x; i++) {for (int j = y; j < num - y; j++) {arr[i][j] = count;}}fun(x + 1, y + 1, arr, count + 1, num);}private static void show(int[][] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {if (i == 0 || j == 0 || i == arr.length - 1|| j == arr[i].length - 1 || i == 1 || j == 1|| i == arr.length - 2 || j == arr[i].length - 2) {System.out.print((char) arr[i][j]);} else {System.out.print(arr[i][j]);}}System.out.println();}}
3.矩陣中填數. 當給出 N*N 的矩陣(倒填)
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = Integer.parseInt(scanner.nextLine());int arr[][] = new int[num][num];int k = num * num;for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {arr[i][j] = k;k--;}}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + "\t");}System.out.println();}}
4.矩陣中填數. 當給出 N*N 的矩陣(回轉填數)
/*** 矩陣中填數. 當給出 N*N 的矩陣(回轉填數)*/public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = Integer.parseInt(scanner.nextLine());int arr[][] = new int[num][num];int k = num * num;for (int i = 0, j = 0, d = 0, x = 1; x <= k; x++) {arr[i][j] = x;if (d == 0)// 方向向下{if (i + 1 < arr.length && arr[i + 1][j] == 0) {i++;} else {d = 1;}}if (d == 1)// 方向向右{if (j + 1 < arr[i].length && arr[i][j + 1] == 0) {j++;} else {d = 2;}}if (d == 2)// 方向向上{if (i - 1 >= 0 && arr[i - 1][j] == 0) {i--;} else {d = 3;}}if (d == 3)// 方向向左{if (j - 1 >= 0 && arr[i][j - 1] == 0) {j--;} else {d = 0;i++;}}}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + "\t");}System.out.println();}}
5.楊輝三角
??? /*** 楊輝三角*/public static void main(String[] args) {int num = 10;// 打印10行的楊輝三角,可以任意指定int arr[][] = new int[num][];// 給數組列數開辟空間一行比一行多一列for (int i = 0; i < arr.length; i++) {arr[i] = new int[i + 1];}// 給數字每一行的第一個和最后一個賦值為1for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {arr[i][0] = 1;arr[i][arr[i].length - 1] = 1;}}// 根據楊輝三角規律給其它地方賦值for (int i = 2; i < arr.length; i++) {for (int j = 1; j < arr[i].length - 1; j++) {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}// 打印楊輝三角for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + " ");}System.out.println();}}
總結
- 上一篇: oss对象存储服务操作
- 下一篇: java集合中对象某属性比较排序