首页 > 试题广场 >

空心三角形图案

[编程题]空心三角形图案
  • 热度指数:25058 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
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 <= i; j++) {
                    if (i == 0 || i == n - 1 || j == 0 || j == i) {
                        System.out.print("* ");
                    } else {
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }
        in.close();
    }
}

发表于 2024-08-18 21:48:42 回复(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<=i;j++){
                    if(j==1||i==n||j==i){
                        System.out.print("* ");
                    }else{
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }
    }
}

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

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        while(scan.hasNextInt()){
            int num = scan.nextInt();
            for (int line = 1; line < num; line++){
                for(int colu = 1; colu <= line; colu++){
                    if(line == colu || colu == 1){
                        System.out.print("* ");
                    }else if(line > 2){
                         System.out.print("  ");
                    }
                }
                System.out.println();
            }
            //单独输出最后一行
            for(int i = 0; i < num; i++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

发表于 2022-11-02 21:29:11 回复(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<=i;j++){
                    if(i==1||i==2||i==x){
                        System.out.printf("* ");
                    }else{
                        if(j==1||j==i) System.out.printf("* ");
                        else System.out.printf("  ");
                    }
                }
                System.out.println();
            }
        }
    }
}

发表于 2022-08-18 00:06:27 回复(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();
            //第一二行
            System.out.println("* ");
            System.out.println("* * ");
            //中间行
            for (int j = 1; j <= n - 3; j++) {
                System.out.print("* ");
                for (int i = 0; i < j; i++) {
                    System.out.print("  ");
                }
                System.out.println("* ");
            }
            //最后一行
            for (int i = 0; i < n; i++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

发表于 2022-07-06 17:50:50 回复(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 = 0 ; i < n ;i++){
               for(int j = 0;j <= i ;j++){
                   if(j > 0 && j < i && i < (n - 1)){
                       System.out.print("  ");
                   }else{
                       System.out.print("* ");
                   }
               }
                System.out.println("");
            }
        }
    }
}

发表于 2022-06-29 11:39:56 回复(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==a||j==1||j==i) {
						System.out.print("* ");
					}
					else {
						System.out.print("  ");
					}
				}
				System.out.println();
			}
		}
		
	}
}

发表于 2022-04-21 09:55:18 回复(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(j == 0 || i == n -1 || i - j == 0){
                      System.out.print("* ");
                  } else{
                      System.out.print("  ");
                  }
              }
             System.out.println();
          }
        } 
    }
}
发表于 2022-03-20 15:40:34 回复(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(j == 0 || j == i || i == count - 1) {
                        System.out.print("* ");
                    } else {
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }
    }
}

发表于 2022-03-20 11:25:05 回复(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(j==0||j==i||i==n-1)  System.out.print("* ");
                    else                    System.out.print("  ");
                }
                System.out.println();
            }
        }
    }
}

发表于 2022-03-09 15:41:12 回复(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();
                int m = 2*n;
                for(int i = 0; i < n; i++) {
                    char[] ch = new char[m];
                    for(int j = 0; j < m; j++){
                        ch[j] = ' ';
                    }
                    ch[0] = '*';
                    ch[2*i] = '*';
                    if(i == n-1) {
                        for(int j = 0; j < m; j++){
                            if(j%2 == 0){
                                ch[j] = '*';
                            }
                        }
                    }
                    System.out.println(String.valueOf(ch));
                }
            }
        }
}

发表于 2022-02-28 20:23:18 回复(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==j||j==0||i==(n-1)){
                    System.out.print("* ");
                }else{
                    System.out.print("  ");
                }
            }
            System.out.println(" ");
        }
        }
    }
}

发表于 2021-10-15 16:57:11 回复(0)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main
{
    public static void main(String args[])throws IOException
    {
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str=bf.readLine())!=null)
        {
            StringBuilder sb=new StringBuilder();
            int n=Integer.parseInt(str);
            if(n<3||n>20)
            {
                System.out.println("error input");
                continue;
            }
            else
            {
                for(int i=0;i<n;i++)
                {
                    for(int j=i;j>=0;j--)
                    {
                        if(i>1&&i!=n-1)
                        {
                            if(j>0&&j<i)
                                sb.append("  ");
                            else
                                sb.append("* ");
                        }
                        else
                            sb.append("* ");
                    }
                    for(int k=i+1;k<n;k++)
                        sb.append("  ");
                    sb.append("\n");
                }
                System.out.print(sb);
                sb.setLength(0);
            }
        }
    }
}

发表于 2021-04-13 21:34:33 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count;
        boolean flag;
        while(scanner.hasNext()) {
            count = scanner.nextInt();
            for(int i=0;i<count;i++) {
                for(int j=0;j<=count*2;j++) {
                    //条件是精髓
                    flag = i==count-1?j%2==0:j==0||(j%2==0&&j/2==i);
                    if(flag) {
                        System.out.printf("*");
                    }else {
                        System.out.printf(" ");
                    }
                }
                System.out.println();
            }
        }
    }
}
三目运算符解析:
//如果是最后一行
if(i==count-1) {
    if(j%2==0) 
        输出*;
    else
        输出空格;
}else {
//不是最后一行
    //j/2==i有两种情况:1. j = 2*i   2. j = 2*i + 1
    //所以避免出现第二种情况,必须判定j为偶数,即j%2==0
    if(j/2==i&&j%2==0)
        输出*;
    else
        输出空格;
}
发表于 2021-03-18 09:10:20 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int num = sc.nextInt();
            for(int i=1;i<=num;i++){
                for(int j=1;j<=num;j++){
                    if(j==1||i==j||i==num)
                        System.out.print("* ");
                    else{
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        }
    }
}
发表于 2020-08-15 14:07:43 回复(0)
package exer;  import java.util.Collections; import java.util.Scanner;  public class test3 { public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  while (sc.hasNextInt()){ int n = sc.nextInt();  for (int i=1;i<=n;i++){ if (i==1||i==2||i==n){
                    String str = String.join("", Collections.nCopies(i,"* "));  System.out.print(str);  }else{ for (int j=1;j<=n;j++){ if (j==i||j==1){
                            System.out.print("* ");  }else {
                            System.out.print("  ");  }
                    }
                }
                System.out.println();  }
        }
    }
}
通过不了 显示一样
发表于 2020-06-27 10:32:23 回复(1)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
	            int a = input.nextInt();
	            for(int i=1; i<=a; i++){
	                if(i==1 || i==2 || i==a){
	                    for(int j=1; j<=i; j++){
	                        System.out.print("* ");
	                    }
                        for(int k=i+1;k<=a;k++) {
	                    	System.out.print("  ");
	                    }
	                    System.out.println();
	                }else{
	                    System.out.print("* ");
	                    for(int j=3; j<=i; j++){
	                        System.out.print("  ");
	                    }
	                    System.out.print("* ");
	                    for(int k=i+1; k<=a; k++){
	                        System.out.print("  ");
	                    }
	                    System.out.println();
	                }
	            }
	        }
	    }
	}
后面的空格一定不能忘记
发表于 2020-06-24 21:36:08 回复(0)