LatinMatrix
package ccnu;
public class Demo07 {
public static void main(String[] args) {
int[][] latin = latinMatrix(4);
for(int[] i : latin){
for(int ii:i){
System.out.print(ii);
}
System.out.println();
}
}
public static int[][] latinMatrix(int n) {
if (n <= 0) {
return null;
}
int[][] latin = new int[n][n];
Node head = create(n);
if (head == null) {
return null;
}
Node p = head;
for (int i = 0; i < n * n; i++) {
latin[i / n][i % n] = p.data;
if ((i + 1) % n == 0) {
head = head.next;
p = head;
} else {
p = p.next;
}
}
return latin;
}
public static Node create(int n){
if(n <= 0){
return null;
}
int i = 1;
Node head = new Node(i);
Node rear = head;
i++;
while(i <= n){
Node tmp = new Node(i);
rear.next = tmp;
rear = tmp;
i++;
}
rear.next = head;
return head;
}
private static class Node{
private int data;
private Node next = null;
public Node(int data){
this.data = data;
}
}
}
菱形打印
package ccnu.allTest;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int level;
boolean tag;
do {
System.out.print("请输入层数:");
level = sc.nextInt();
} while (level <= 0 || level % 2 == 0);
System.out.print("实心或空心(false:实心,true:空心):");
tag = sc.nextBoolean();
print(level, tag);
sc.close();
}
public static void print(int level, boolean tag){
int n = (level + 1) / 2;
int space = n, nonSpace = -1;
for(int i = 1; i <= level; i++){
if(i <= n){
space -= 1;
nonSpace += 2;
}else{
space += 1;
nonSpace -= 2;
}
printCharacter(space, ' ', tag);
printCharacter(nonSpace, '*', tag);
System.out.println();
}
}
public static void printCharacter(int n, char ch, boolean tag){
for(int i = 1; i <= n; i++){
if(tag && i > 1 && i < n){
System.out.print(' ');
continue;
}
System.out.print(ch);
}
}
}