首页 > 试题广场 >

翻转金字塔图案

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

输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。


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

输入

5

输出

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

输入

6

输出

* * * * * * 
 * * * * * 
  * * * * 
   * * * 
    * * 
     * 
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 temp = String.join("", Collections.nCopies(n+1, " "));
            for (int i = n; i >0; i--) {
                System.out.println(String.join("", Collections.nCopies(n-i, " "))+
                        String.join(" ", Collections.nCopies(i, "*"))+" ");
            }
        }
    }
}

发表于 2020-04-22 10:03:06 回复(0)
#include<stdio.h>
int main()
{
    int n;
    while( scanf("%d",&n) != EOF )
    {
        for( int i = 0 ; i < n ; i++ )
        {
            for( int j = i ; j > 0 ; j-- )
            {
                printf(" ");
            }
            for( int j = i ; j < n ; j++ )
            {
                printf("* ");
            }
            printf("\n");
        }  
    }
}

发表于 2022-06-17 07:27:53 回复(0)
#include <stdio.h>

int main(){
    int n = 0;
    while(~ scanf("%d", &n)){
        for(int i = 0; i < n; i++){
            for(int k = 0; k < i; k++){
                printf(" ");
            }
            for(int j = n - i; j > 0; j--){
                printf("* ");
            } 
            printf("\n");
        }
    }
    return 0;
}

发表于 2022-05-26 15:35:54 回复(0)
#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<i;j++){
                printf(" ");
            }
            for(j=0;j<n-i;j++){
                printf("* ");
            }
            printf("\n");
        }
    }
}
通过上面好几道题,总结出来一个小规律
1.外层循环一般都是输入的数字
2.内层循环分空格和*,可以把外层循环的i代为1,然后根据第一行得出内层循环的表达式,然后检验,最后,记得循环后加\n。
发表于 2022-04-20 15:20:45 回复(0)
#include <stdio.h>
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<i;j++)
            {
                printf(" ");
            }
            for(j=1;j<=n-i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2021-12-30 17:59:07 回复(0)
while True:
    try:
        a = int(input())
        for i in range(a, 0,-1):
            print(' '*(a-i)+'* '*i)
    except:
        break

发表于 2020-11-25 15:42:07 回复(0)
#include <stdio.h>

int main(void)
{
    int i, j, k, n;
    
    while (scanf("%d", &n) != EOF && (n >= 2 && n <= 20))
    {
        for (i = 0; i < n; i++)
        {
            for (k = 0; k < i; k++)
            {
                putchar(' ');
            }
            for (j = n - i; j > 0; j--)
            {
                printf("* ");
            }
            putchar('\n');
        }
    }
    
    return 0;
}

发表于 2020-05-02 15:46:19 回复(0)
#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<i;j++){
                printf(" ");
            }
            for(j=0;j<n-i;j++){
                printf("* ");
            }
            printf("\n");
        }
    }
}

发表于 2020-04-11 09:14:15 回复(0)
while 1:
    try:
        a=int(input())
        for i in range(a):
            print(" "*i+"* "*(a-i))
    except:
        break

发表于 2025-02-24 09:54:15 回复(0)
#include<stdio.h>
int main()
{
    int n=0;
    int i=0;
    int j=0;
    int k=0;
    while(scanf("%d",&n)!=EOF)
    {
      for(i=0;i<n;i++)
      {       
        for(k=0;k<i;k++)
          {
          printf(" ");
          }
        for(j=i;j<n;j++)
          {
            printf("* ");
          }
          printf("\n");
      }

    }
    return 0;
}

发表于 2024-12-15 18:15:26 回复(0)
#include <stdio.h>

int main() {
    int a = 0;
    while (scanf("%d", &a) != EOF) {
        for (int i = 1; i <= a; i++) {
            for (int u = 1; u < i; u++) {
                printf(" ");
            }
            for (int j = a; j >= i; j--) {
                printf("* ");
            }
            printf("\n");
        }
    }

    return 0;
}
发表于 2024-12-02 20:30:31 回复(0)
#include <stdio.h>

int main() {
    int num=0;
    scanf("%d",&num);
    for (int i=num;i>0;i--){
        for (int j=0;j<num-i;j++){
            printf(" ");
        }
        
        for (int j=0;j<i;j++){
            printf("* ");
        }
        printf("\n");
    }


    
    return 0;
}
发表于 2024-11-06 21:24:56 回复(0)
#include <stdio.h>

int main() {
   int n,i,j;
   while(scanf("%d",&n)!=EOF)
   {
     for(i=1;i<=n;i++)
     {
        for(j=1;j<i;j++)
        {
            printf(" ");
        }
        for(j=1;j<=n-i+1;j++)
        {
            printf("* ");
        }
        printf("\n");
     }
   }
    return 0;
}

发表于 2024-09-28 21:36:36 回复(0)
while True:
    try:
        n = int(input())
        for i in range(n,0,-1):
            temp = "* " * (i - 1) + "*"
            m = 2 * n - 1
            print(f"{temp:^{n*2-1}}") #  ^居中,>居右,<居左对齐
    except Exception as e:
        break

发表于 2024-09-28 18:55:31 回复(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 处理多个 case
        while(in.hasNext()){
            int a = in.nextInt();
         
          for(int i = 0; i < a; i++){
            for(int j = 0; j < a; j++){
                if(j < i){
                    System.out.print(" ");
                }else if(0 < a-i){
                    System.out.print("* ");
                }
            }
            System.out.println("");
          }
        }      
    }
}
发表于 2024-08-30 18:35:15 回复(0)
#include<stdio.h>
int main()
{
    int n = 0;
    while ((scanf("%d", &n)) != EOF)
    {
        int i = n;
        for (; i >= 1; --i)

        {

            int x = n - i;
            for (; x > 0; --x)
            {
                printf(" ");
            }//开头空格打印

            int j = 1;
            for (; j <= i; ++j)
            {
                if (j < i)
                    printf("* ");
                else
                    printf("*");
            }
            printf("\n");

        }

     

    }

    return 0;
}
发表于 2024-08-24 11:29:40 回复(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++) {
                for (int j = 1; j <= i; j++) {
                    System.out.print(" ");
                } //空格循环
                for (int j = n - 1 - i; j >= 0; j--) {
                    System.out.print("* ");
                } //星星循环
                System.out.println();
            }
        }
    }
}

发表于 2024-08-14 19:57:03 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    while((scanf("%d", &n)) != EOF)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < i; j++)
            {
                printf(" ");
            }
            for (int k = n - i; k > 0; k--)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
}

发表于 2024-08-05 22:34:11 回复(0)
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 1; i <= n; i++) {
            for (int j = 0; j < i - 1; j++) {
                printf(" ");
            }
            for (int k = n + 1 - i; k > 0 ; k--) {
                printf("* ");
            }
            printf("\n");

        }
    }

    return 0;
}

发表于 2024-08-03 10:41:25 回复(0)
#include<stdio.h>
int main()
{
    int n=0;
    while(scanf("%d",&n)!=EOF){
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i-1;j++)
        {
            printf(" ");
        }
        for(int z=0;z<=n-i;z++)
        {
            printf("* ");
        }
        printf("\n");
    }
   
}
return 0;
}
发表于 2024-07-24 23:18:19 回复(0)