题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

n = int(input())
# 存储上一层的数据,如果放在for循环中,会导致每次循环都会将lst重置为空
lst = []
# 控制行数
for i in range(n):#控制每一行的输出
    if i == 0:
        lst = [(j + 1)*j//2 for j in range(1,n+1)]#给定第一行索引,第一行各列元素通式
    else:
        lst = [(j - 1) for j in lst[1:]]
        
    print(' '.join(map(str,lst)))

全部评论

相关推荐

点赞 评论 收藏
分享
思念SiN:你这里没有通过的主要原因应该是计算平均分数的时候,在你贴的代码的第23行: ```c b[i]=(sum-max-min)/(m-2); ``` 等式的右边实际上是两个`int`类型的变量在做除法,C语言里面得到的结果会是这个除法的整数部分,余数部分被舍弃了,也不会自动变成浮点数去做除法。所以虽然你使用了`b[i]`这个浮点数去接收结果,但是等式右边除法是先得到了一个整数,然后再被转换为浮点数再赋值给了`b[i]`。你可以按下面这样,在做除法之前,先进行类型转换,就能得到期望的结果: ```c b[i]=(float)(sum-max-min)/(float)(m-2); ```
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务