首页 > 试题广场 >

菱形图案

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

输入描述:

多组输入,一个整数(2~20)。



输出描述:

针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。

示例1

输入

2

输出

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

输入

3

输出

   * 
  * * 
 * * * 
* * * * 
 * * * 
  * * 
   * 
示例3

输入

4

输出

    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 
思路:找到规律后只需要一个循环+if判断来完成
while True:
    try:
        n = int(input())
        for i in range(1,2*n+2):
            if i <= n+1:
                print(" "*(n+1-i)+"* "*i)
            else:
                print(" "*(i-(n+1))+"* "*((n+1)-(i-(n+1))))
    except:
        break


编辑于 2021-03-16 16:11:09 回复(0)
import sys
while True:
    try:
        num=int(sys.stdin.readline().strip())
        numl=num+1
        for i in range(numl):
            print(("* "*(i+1)).center(numl*2))
            if i==num:
                for j in range(num,0,-1):
                    print(("* "*j).center(numl*2))
    except:
        break

发表于 2020-12-10 00:14:21 回复(0)
while True:
    try:
        a = int(input())
        for i in range(1, a+2):
            print(' '*(a+1-i)+'* '*i)
        for i in range(a,0,-1):
            print(' '*(a+1-i)+'* '*i)
    except:
        break

发表于 2020-11-25 13:18:03 回复(0)
while True:
    try:
        n = int(input())
        for i in range(1, 2 * n + 2):
            if i in range(1, n + 1):
                print(" " * (n-i+1) + "* " * i + " " * (n-1))
            elif i == n + 1:
                print("* " * (n + 1))
            elif i in range(n + 2, 2 * n + 2):
                print(" " * (i-n-1) + "* " * (2*n+2-i) + " " * (n-1))
    except:
        break

发表于 2020-07-10 13:26:08 回复(0)