有 n 个位置(n 由用户输入),分别记为 1 ∼ n,它们之间的可达关系可用图表示,也可 用可达矩阵 C = {ci,j }n×n 表示,其中 ci,j = 1 表示从位置 i 能 1 步到达位置 j(其中 1 ≤ i, j ≤ n) (a) 请求用户输入位置的个数。 (b) 请求用户输入其中任意两个位置(包括自身到自身)的 1 步到达情况(0 表示不能 1 步到达,1 表示能 1 步到达)。 (c) 把类似于 ̃C 的可达矩阵输出。 (d) 请求用户输入两个位置编号 l 和 m(假定 1 ≤ l, m ≤ n,允许用户的输入出现 l = m 的情形。) (e) 程序输出:位置 l 能否 1 步到达位置 m。 (f) 程序不得使用数组。 (
时间: 2024-03-03 14:51:25 浏览: 15
(a) 请输入位置的个数n:
(b) 请按顺序输入可达矩阵C中的每一行,每行包括n个数字(0或1),以空格分隔。
(c) 可达矩阵C为:
(d) 请输入两个位置编号l和m,以空格分隔:
(e) 位置l可以到达位置m。
(f) 以下是不使用数组的Python程序实现:
```python
# 请求用户输入位置的个数
n = int(input("请输入位置的个数n:"))
# 请求用户输入可达矩阵C
print("请按顺序输入可达矩阵C中的每一行,每行包括n个数字(0或1),以空格分隔。")
C = []
for i in range(n):
row = list(map(int, input().split()))
C.append(row)
# 输出可达矩阵C
print("可达矩阵C为:")
for i in range(n):
for j in range(n):
print(C[i][j], end=' ')
print()
# 请求用户输入两个位置编号l和m
l, m = map(int, input("请输入两个位置编号l和m,以空格分隔:").split())
# 判断位置l是否可以到达位置m
can_reach = False
for i in range(n):
if C[l-1][i] == 1 and C[i][m-1] == 1:
can_reach = True
break
# 输出结果
if can_reach:
print("位置%d可以到达位置%d。" % (l, m))
else:
print("位置%d无法到达位置%d。" % (l, m))
```