对于这题的参数,只需要接收一个数字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语言代码)浏览:1291 |
【亲和数】 (C语言代码)浏览:503 |
【金明的预算方案】 (C++代码)浏览:843 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:589 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:528 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:535 |
神奇的fans (C语言代码)浏览:987 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:615 |
C二级辅导-等差数列 (C语言代码)浏览:770 |
统计立方数 (C语言代码)浏览:865 |