n,m=list(map(int,input().split(' '))) num_end=n*m s=[] s1=[] for i in range(0,n):#创建二维列表 s1=list(range(0,m)) s.append(s1) def roundfun(i0,j0,n,m,num): i=i0 j=j0 if num==num_end: return while j<m: s[i][j]=num j+=1 num+=1 while i<n: s[i][j]=num i+=1 num+=1 i=n-1 j=m-1 while j>=j0: s[i][j]=num j-=1 num+=1 while i>i0: s[i][j]=num i-=1 num+=1 roundfun(i0+1,j0+1,n-1,m-1,num) roundfun(0,0,n,m,1) for i in range(0,n): for j in range(0,m): if j==m: print(s[i][j]) print(s[i][j],end=' ')
时间: 2024-04-09 07:28:47 浏览: 131
输入两个非负整数m,n(n>=m) 输出m,n区间的所有平方数之和 例如: 输入: 4,9 输出: 13
根据您提供的代码,出现错误的原因是在打印二维列表 `s` 时,缺少了对 `j` 的判断。请将最后的打印代码修改如下:
```python
for i in range(0, n):
for j in range(0, m):
if j == m - 1: # 判断是否是最后一列
print(s[i][j])
else:
print(s[i][j], end=' ')
```
这样可以确保在每行最后一个元素时换行打印,而其他元素之间用空格分隔。请尝试修改后再次运行程序。
阅读全文