首页 > 试题广场 >

空心正方形图案

[编程题]空心正方形图案
  • 热度指数:48137 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。

输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。


输出描述:
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
示例1

输入

4

输出

* * * * 
*     * 
*     * 
* * * * 
示例2

输入

5

输出

* * * * * 
*       * 
*       * 
*       * 
* * * * * 
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();

            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    //打印星星的条件
                    if (j == 0 || j == n - 1 || i == 0 || i == n - 1) {
                        System.out.print("* ");
                    } else {
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }
        in.close();
    }
}

发表于 2024-08-18 21:36:48 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(i==1||i==n||j==1||j==n){
                        System.out.print("* ");
                    }else{
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
            
        }
    }
}

发表于 2022-11-03 17:33:39 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt()){
            int x=sc.nextInt();
            for(int i=1;i<=x;i++){
                for(int j=1;j<=x;j++){
                    if(i==1||i==x){
                        System.out.printf("* ");
                    }else{
                        if(j==1||j==x) System.out.printf("* ");
                        else System.out.printf("  ");
                    }
                }
                System.out.println();
            }
        }
    }
}

发表于 2022-08-18 00:13:19 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();
            //第一行
            for (int i = 0; i < n; i++) {
                System.out.print("* ");
            }
             System.out.println();
            //中间行
            for (int j = 0; j < n - 2; j++) {
                System.out.print("* ");
                for (int i = 0; i < n - 2; i++) {
                    System.out.print("  ");
                }
                 System.out.println("* ");
            }
            //最后一行
            for (int i = 0; i < n; i++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

发表于 2022-07-06 17:41:17 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int n = scanner.nextInt();
            for(int i = 1 ; i <= n ;i++){
                if(i != 1 && i != n){
                    System.out.print("* ");
                    for(int j = 1;j <= n - 2;j++){
                        System.out.print("  ");
                    }
                    System.out.print("* ");
                }else{
                    for(int j = 1; j <= n;j++){
                        System.out.print("* ");
                    }
                }
                System.out.println("");
            }
        }
    }
}

发表于 2022-06-29 10:37:29 回复(0)
import java.util.Scanner;
//实际上就是输出一个正方形,根据不同条件填不一样的字符
public class Main {
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		
		while(sc.hasNext()) {
			int a = sc.nextInt();
			for(int i=1;i<=a;i++) {
				for(int j=1;j<=a;j++) {
					if(i==1||j==1||i==a||j==a) {
						System.out.print("* ");
					}
					else {
						System.out.print("  ");
					}
				}
				System.out.println();
			}
		}
		
	}
}

发表于 2022-04-21 09:48:51 回复(0)
import java.util.Scanner;

/**
 * @Title: 空心正方形图案
 * @Remark: KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
 * 输入描述:
 *      多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
 * 输出描述:
 *      针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
 * @Author: ijunfu
 * @Version: 1.0.0
 * @Date: 2022-03-20
 */
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while(in.hasNextLine()) {
            int count = Integer.parseInt(in.nextLine());

            for(int i=0; i<count; i++) {

                for(int j=0; j<count; j++) {

                    if(i == 0 || j == 0 || i == count - 1 || j == count -1) {
                        System.out.print("* ");
                    } else {
                        System.out.print("  ");
                    }

                }
                System.out.println();
            }
        }
    }
}

发表于 2022-03-20 11:18:48 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNextInt()){
            int n = in.nextInt();
            for(int i = 0; i < n; i++){
                int m = 2*n;
                char[] ch = new char[m];
//初始化。在牛客需要,eclipse上不用初始化。是jdk版本问题吗?没搜到原因
//求大佬解答
                for(int k = 0; k < m; k++){
                    ch[k] = ' ';
                }
                ch[0] = '*';
                ch[m-2] = '*';
                if(i == 0 || i == n-1){
                    for(int j = 0 ;j < m; j++){
                        if(j%2 == 0){
                            ch[j] = '*';
                        }else{
                            ch[j] = ' ';
                        }
                    }
                }
                System.out.println(String.valueOf(ch));
            }
        }
    }
}


发表于 2022-02-28 20:06:12 回复(0)
 
import java.util.Scanner; public class Main { public static void main(String[] args) {
        Scanner sc= new Scanner(System.in); int k=sc.nextInt(); for(int i=0;i<k;i++){ for (int j=0;j<k;j++){ if(i==0||i==k-1) {   System.out.print("* ");
    } else{ if (j==0||j==k-1){ System.out.print("* ");
   } else{
            System.out.print("  ");  }
  }
            }
            System.out.println();
        }
    }
}

发表于 2021-11-13 11:27:04 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    if(i==0||i==(n-1)||j==0||j==(n-1)){
                        System.out.print("* ");
                    }else{
                        System.out.print("  ");
                    }
                }
                System.out.println(" ");
}
        }
    }
}

发表于 2021-10-15 16:49:33 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            String[][] arr = new String[n][n];
            for(int i = 0; i < arr.length; i++){
                for(int j = 0; j < arr[i].length; j++){
                    arr[i][j] = "  ";
                    arr[0][j] = "* ";
                    arr[n-1][j] = "* ";
                    arr[i][0] = "* ";
                    arr[i][n-1] = "* ";
                    
                }
            }
            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();
            }
        }
    }
}

发表于 2021-10-08 10:45:00 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            int n=scan.nextInt();
            String res[][]=new String[n][n];
            for(int i=0;i<n;i++){
               for(int j=0;j<n;j++){
                res[i][j]=" ";
            }
            }
            for(int i=0;i<n;i++){
                res[0][i]="*";
                res[n-1][i]="*";
            }
            for(int i=1;i<n-1;i++){
                res[i][0]="*";
                res[i][n-1]="*";
            }
            for(int i=0;i<n;i++){
               for(int j=0;j<n;j++){
                System.out.print(res[i][j]+" ");
            }
                System.out.println();
            }
        }
    }
}
最后那个空格比较难发现
发表于 2021-01-05 17:28:26 回复(0)
我刚刚大一。。。。。还是楼下大哥牛逼,我的抓紧脚步学好map了
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (input.hasNext()) {
            int n = input.nextInt();
            int space=n*2;
            for(int i=0;i<n;i++)
                System.out.print("* ");
            System.out.println("");
            for(int ii=0;ii<n-2;ii++){
                for(int j=0;j<space;j++){
                    if(j==0||j==n*2-2)
                        System.out.print("*");
                    else
                        System.out.print(" ");
                }
                System.out.println("");
            }
            for(int i=0;i<n;i++)
                System.out.print("* ");
            System.out.println("");


        }
    }
}


发表于 2020-10-30 22:14:04 回复(0)
import java.util.Collections;
import java.util.Scanner;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            if (n==1){
                System.out.println("* ");
                continue;
            }
            //以下代码为str 为重复n次"* "的字符串。
            String str = Collections.nCopies(n,"* ").stream().collect(Collectors.joining());
            String temp = Collections.nCopies((n-2)*2," ").stream().collect(Collectors.joining());
            temp = "* "+ temp + "* ";
            System.out.println(str);
            for (int i = 0; i < n - 2; i++) {
                System.out.println(temp);
            }
            System.out.println(str);
        }
    }
}

发表于 2020-09-23 13:35:24 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while (sc.hasNext()) {
        int n = sc.nextInt();
        for (int i = 1; i <=n ; i++) {//行
            for (int j = 1; j <=n ; j++) {//列
            if(i==1||i==n||j==1||j==n){
                System.out.print("*"+" ");
                if(i!=1&&i!=n){
                    for (int k =1;k<=n-2 ;k++) {
                        System.out.print(" ");
                        }
                    }
                }
               else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}
}

发表于 2020-09-14 21:31:24 回复(0)
import java.util.Scanner;


public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
   Scanner scanner=new Scanner(System.in); 
   while (scanner.hasNext()) {
    
       int len=scanner.nextInt();    
       for(int i=1;i<=len;i++) {
           if(i==1||i==len) {
               for(int j=1;j<=len;j++) {
                System.out.print("* ");     
                
               System.out.println();
           }else {
               System.out.print("* ");
               for(int j=2;j<len;j++) {
                   System.out.print("  ");
               }
               System.out.println("* ");
           }
           
       }
   }
    
        
    
    }
    
}
            
    


发表于 2020-06-16 09:54:24 回复(0)