1)假设你有一个大房子,大房子有大院子.下雨的时候有小水坑, 水坑过一会会连成一片水洼.1 代表有水坑,0代表没有水坑. 输入一个正整数N,M, 代表N行M列的矩阵,然后再输入是否 有水坑的情况. 求出水洼的数量.(写一个代码)
时间: 2024-04-21 12:23:21 浏览: 151
好的,我可以帮你编写一个代码来计算矩阵中水洼的数量。以下是一个Python代码示例:
```python
def count_water_puddles(matrix):
# 获取矩阵的行数和列数
rows = len(matrix)
cols = len(matrix[0])
# 定义一个变量来记录水洼的数量
count = 0
# 定义一个辅助函数来判断当前位置是否为水坑
def is_puddle(row, col):
# 判断当前位置是否为水坑
if matrix[row][col] == 1:
return True
else:
return False
# 定义一个辅助函数来递归搜索相邻的水坑
def search_puddles(row, col):
# 检查当前位置是否越界或者不是水坑
if row < 0 or row >= rows or col < 0 or col >= cols or not is_puddle(row, col):
return
# 将当前位置标记为已访问
matrix[row][col] = -1
# 递归搜索相邻的水坑
search_puddles(row - 1, col) # 上方
search_puddles(row + 1, col) # 下方
search_puddles(row, col - 1) # 左边
search_puddles(row, col + 1) # 右边
# 遍历矩阵中的每个位置,进行搜索
for i in range(rows):
for j in range(cols):
if is_puddle(i, j):
# 如果当前位置是水坑,则进行搜索
search_puddles(i, j)
count += 1 # 水洼数量加一
return count
# 获取矩阵的行数和列数
N = int(input("请输入矩阵的行数N:"))
M = int(input("请输入矩阵的列数M:"))
# 输入矩阵的水坑情况
matrix = []
print("请输入矩阵的水坑情况(以空格分隔):")
for i in range(N):
row = list(map(int, input().split()))
matrix.append(row)
# 调用函数计算水洼的数量
puddle_count = count_water_puddles(matrix)
print("水洼的数量为:", puddle_count)
```
你可以运行这段代码并输入矩阵的行数、列数以及水坑情况,代码将输出水洼的数量。希望对你有帮助!
阅读全文