分数矩阵(一) 题目难度:初阶 时间限制:1000ms 内存限制:64mb 题目描述 有如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 该矩阵对角线上的元素始终是1/1,对角线两边分数分母逐个递增。 请求出这个矩阵的总和。 输入格式 输入包含多组测试数据。每行给定整数n(n<50000),表示矩阵为n*n。当n=0时,输入结束。 输出格式 输出答案,结果保留2位小数。 输入样例 3 4 0 输出样例 5.67 8.83 样例解释 当n为3时,矩阵为: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 该矩阵和为5.67(四舍五入保留2位) 当n为4时,矩阵为: 1/1 1/2 1/3 1/4 1/2 1/1 1/2 1/3 1/3 1/2 1/1 1/2 1/4 1/3 1/2 1/1 该矩阵和为8.83(四舍五入保留2位) python代码
时间: 2023-09-08 11:07:49 浏览: 216
300多地级市和2900多个区县的相邻0/1矩阵(附空间计量学习资料)
你可以使用以下Python代码来解决这个问题:
```python
while True:
n = int(input())
if n == 0:
break
total_sum = 0
for i in range(1, n+1):
for j in range(1, n+1):
if i == j:
total_sum += 1/i
else:
total_sum += 1/(abs(i-j)+1)
print('%.2f' % total_sum)
```
这个代码使用了一个无限循环来处理多组测试数据,当输入的n为0时,循环结束。在每个测试数据中,我们使用两个嵌套循环来计算矩阵的和。对于矩阵中的每个元素,如果该元素在对角线上(即i等于j),则添加1/i到总和中;否则,添加1/(|i-j|+1)到总和中。最后,使用'%.2f'格式化字符串来保留两位小数并打印出结果。
阅读全文