首页 > 试题广场 >

给定一个整数n,以下列方式打印n行。

[问答题]

给定一个整数n,以下列方式打印n行。

如果n=4,生成的阵列将为

1*2*3*4

9*10*11*12

13*14*15*16

5*6*7*8

SquarePattern类的构造方法为squarePatternPrint。该函数的输入是一个整数 n(0<=n<=100)。

不要从该方法返回任何内容。使用System out.print()或System out.println()打印所需的阵 列。

各输出行只能由“数字”和“*”组成。不应有空格。

确保你的类和方法是公共的(public)。不要接受来自控制台的任何输入。应将其作为参 数传递到方法自身。

有用的命令:

System.out.print()可将括号内的内容打印到屏幕上。

java实现:
public static void main(String[] args) {
        System.out.println("打印结果为:");
        int[][] print = print(5);
        for (int i = 0; i < print.length; i++) {
            for (int j = 0; j < print.length; j++) {
                if (j!=print.length-1){
                    System.out.print(print[i][j]+"*");
                }else {
                    System.out.print(print[i][j]);
                }
            }
            System.out.println();
        }
    }
    private static int[][] print(int n){
        int[] arrNum = new int[n * n];
        for (int i = 0; i < arrNum.length; i++) {
            arrNum[i]=i+1;
        }
        int[][] arr = new int[n][n];
        int start=0;
        int end =n-1;
        int index=0;
        while (true){
            for (int i = 0; i < n; i++) {
                arr[start][i]=arrNum[index++];
            }
            for (int i = 0; i < n; i++) {
                arr[end][i]=arrNum[index++];
            }
            start++;
            end--;
            if (start>end){
                break;
            }else if (start==end){
                for (int i = 0; i < n; i++) {
                    arr[start][i]=arrNum[index++];
                }
                break;
            }
        }
        return arr;
    }
打印结果为:
1*2*3*4*5
11*12*13*14*15
21*22*23*24*25
16*17*18*19*20
6*7*8*9*10
发表于 2019-09-08 18:17:43 回复(0)
按规律将数字存入二维数组中,然后按要求输出
发表于 2017-08-01 09:58:21 回复(0)
public class SquarePattern {
private int n;

public SquarePattern(int n) {
this.n = n;
}

public void demo() {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1) {
if (j != n) {
System.out.print(j + "*");
} else {
System.out.print(n);
System.out.println();
}
} else if (i == n) {
if (j != n) {
System.out.print(n + j + "*");
} else {
System.out.print(2 * n);
System.out.println();
}
}

else {

if (j != n) {
System.out.print(i * n + j + "*");
} else {
System.out.print((i + 1) * n);
System.out.println();
}
}
}
}
}
public static void main(String args[]) {
SquarePattern s = new SquarePattern(4);
s.demo();
}
}
发表于 2017-08-04 16:33:30 回复(0)
for(int i=0;i<line;i++){
for(int j=1;j<=line;j++){
if(i==0){
System.out.print(j+(i)*line+"*");
}
if(i!=0&&i!=line-1){
System.out.print(j+(i+1)*line+"*");
}
if(i==line-1){
System.out.print(j+line+"*");
}
}
System.out.println();
}
发表于 2017-08-07 15:16:40 回复(0)
import java.util.ArrayList;

public class SquarePattern {

public static void main(String args[]){
squarePatternPrint(5);
}
public static void squarePatternPrint(int n){
int a[] = new int[n];
for(int i=0;i<n;i++){
a[i] = i;
}
//每行的开始数字为list.getIndex(i)*n+1
ArrayList<Integer> list = reverse(a);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int temp = list.get(i)*n + j + 1;
if(j<n-1){
System.out.print(temp + "*");
}else{
System.out.print(temp);
}
}
System.out.println();
}
}
/**
* a递增有序,使它偶数在前递增,奇数在后递减
*/
public static ArrayList<Integer> reverse(int[] a){
ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
for(int i=0;i<a.length;i++){
if(i%2==0){
list1.add(a[i]);
}else{
list2.add(a[i]);
}
}
for(int i=list2.size()-1;i>=0;i--){
list1.add(list2.get(i));
}
return list1;
}
}
发表于 2017-08-02 14:36:43 回复(0)