首页 > 试题广场 >

X形图案

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

输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。


输出描述:

针对每行输入,输出用“*”组成的X形图案。

示例1

输入

5

输出

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

输入

6

输出

*    *
 *  * 
  **  
  **  
 *  * 
*    *
import sys
while True:
    try:
        num=int(sys.stdin.readline().strip())
        c=(num-1)/2
        for i in range(num):
            ret=''
            for j in range(num):
                if abs(c-i)==abs(j-c):
                    ret+="*"
                else:
                    ret+=" "
            print(ret)
    except:
        break

发表于 2020-12-12 21:30:59 回复(0)
class Solution :
    def __init__(self,n) :
        self.n = n 
        self.O = []
        self.k = False
    def output(self) :
        self.O = [' ' for i in range(n)]
        self.O[0],self.O[n - 1] = '*','*'
        try :
            for j in range(self.n) :
                print(''.join(self.O))
                if self.k :
                    self.O[self.n - j] = '*'
                    self.k = False
                self.O[j + 1],self.O[j] = self.O[j],self.O[j + 1]
                if j + 1 == int(self.n / 2) and self.n % 2 != 0 :
                    self.O[self.n - j - 1] = ' '
                    self.k = True
                    continue
                self.O[self.n - j -1],self.O[self.n - j - 2] = self.O[self.n - j - 2],self.O[self.n - j -1]
        except :
            return
while True :
    try :
        n = int(input())
        s = Solution(n)
        s.output()
    except :
        break

发表于 2020-07-24 14:23:34 回复(0)

问题信息

上传者:牛客309119号
难度:
2条回答 3061浏览

热门推荐

通过挑战的用户

查看代码