如何实现输入正奇数输出无空格奇数箭头图案?
解决方案
问题分析
输入正奇数n后,需输出的图案分为两部分:
- 从1开始,每次加2直到
n,每行打印对应数字重复自身次数的字符串; - 从
n-2开始,每次减2直到1,同样每行打印对应数字重复自身次数的字符串;
全程不能输出任何多余字符(包括空格)。
代码实现(Python)
n = int(input()) # 生成上半部分递增奇数序列:1,3,5...n ascending_nums = range(1, n + 1, 2) # 生成下半部分递减奇数序列:n-2, n-4...1 descending_nums = range(n - 2, 0, -2) # 打印上半部分 for num in ascending_nums: print(str(num) * num) # 打印下半部分 for num in descending_nums: print(str(num) * num)
代码解释
range(1, n+1, 2):生成从1到n的连续奇数,对应图案的上半段(包含中间最长的n行);range(n-2, 0, -2):生成从n-2递减到1的连续奇数,对应图案的下半段;str(num)*num:将数字转为字符串后重复num次,刚好匹配每行的输出格式;- 两次循环分别输出上下两段内容,全程无多余字符,完全符合要求。
验证示例
输入3时输出:
1 333 1
输入5时输出:
1 333 55555 333 1
内容的提问来源于stack exchange,提问作者WeWake
相关产品推荐
相关产品推荐

