对于这题的参数,只需要接收一个数字n
因此,大的框架就很简单了:
def printsnake(n):
#中间的重要代码
n=int(input())
printsnake(n)
很明显,这题是循环打印,外层需要循环n次。所以我们提前准备好两层循环
def printsnake(n):
for i in range(1,n+1): #这里使用range(1,n+1)。这样i的值就是当前的行数,更直观
#循环体
for j in range():
#循环体
n=int(input())
printsnake(n)
对于内层,第一行需要打印n个数字,第i行需要循环打印n+1-i个数字。但是最后一个数字后面不能有空格,而是有换行符。所以我们单独拿出来。
因此,内层循环区间应该是(1,n+1-i)
def printsnake(n):
for i in range(1,n+1):
#循环体
for j in range(1,n+1-i): #内层循环层数
#循环体
print(present) #打印每行最后一个数,顺带了换行符
n=int(input())
printsnake(n)
每行第一个数是1,2,4,7,11......规律是1+1,再+2,再+3......,就是加上当前的行数
因此,对于每行第一个数begin,代码就是:
def printsnake(n):
begin=1 #begin首先是1
for i in range(1,n+1):
#外层其他循环数据
for j in range(1,n+1-i):
#内层循环
print(present)
begin+=i #更新begin,以准备下一次外层循环
n=int(input())
printsnake(n)
对于每行,要打印的数字,第一个就是begin,然后根据规律,下一个数字就再+当前行+当前列。因此,对于每行的打印结果,总代码就是:
def printsnake(n):
begin=1
for i in range(1,n+1):
present=begin #present是当前要打印的数据。首先就是当前行第一个数字begin
for j in range(1,n+1-i):
print(present,end=' ') #打印present,end=' '以打印空格而避免换行
present=present+i+j #根据规律,更新present
print(present) #打印每行最后一个数,顺便换行
begin+=i
n=int(input())
printsnake(n)
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复