R7-7 折纸 分数 5 作者 DS课程组 单位 临沂大学 一张足够大的长方形纸,每次都对折长边(如果是正方形,则任选一边),例如两条边长分别为10和9的长方形纸对折后边长为5和9,再对折一次后边长为5和4(长度为奇数对折后向下取整)。对于给定的两条边长和对折次数,求最终边长,从大到小输出。 输入格式: 输入在一行中给出3个正整数 a,b,n(均小于10000),分别为两条边的长度和对折次数。 输出格式: 在一行中按从大到小的顺序输出对折n次后两条边长的长度,中间用空格分隔。 输入样例1: 3 2 1 输出样例1: 2 1 输入样例2: 3 2 10 输出样例2: 0 0
时间: 2024-03-17 17:43:57 浏览: 14
这道题需要模拟对纸张的多次折叠过程。每次折叠后,较长的那条边长不变,较短的那条边长变为原来的一半。具体实现见下面的 Python 代码:
```python
a, b, n = map(int, input().split())
while n > 0:
if a > b:
b = b * 2
else:
a = a * 2
n -= 1
print(max(a, b), min(a, b))
```
首先读入两条边的长度和对折次数,然后模拟对纸张的多次折叠过程。每次折叠后,较长的那条边长不变,较短的那条边长变为原来的一半。最后输出对折 n 次后两条边长的长度,按从大到小的顺序输出。
相关问题
R7-7 折纸 分数 5 作者 DS课程组 单位 临沂大学 一张足够大的长方形纸,每次都对折长边(如果是正方形,则任选一边),例如两条边长分别为10和9的长方形纸对折后边长为5和9,再对折一次后边长为5和4(长度为奇数对折后向下取整)。对于给定的两条边长和对折次数,求最终边长,从大到小输出。 输入格式: 输入在一行中给出3个正整数 a,b,n(均小于10000),分别为两条边的长度和对折次数。 输出格式: 在一行中按从大到小的顺序输出对折n次后两条边长的长度,中间用空格分隔。 输入样例1: 3 2 1 输出样例1: 2 1 输入样例2: 3 2 10
可以使用以下代码实现:
```python
a, b, n = map(int, input().split())
# 定义一个函数,用于计算对折一次后边长的长度
def fold(x, y):
return y, (x + y) // 2
# 对折 n 次
for i in range(n):
if a > b:
a, b = fold(a, b)
else:
b, a = fold(b, a)
# 输出结果,从大到小排序
if a > b:
print(a, b)
else:
print(b, a)
```
首先,将输入的字符串转换为整型,得到两条边的长度 a 和 b,以及对折次数 n。
然后,定义一个函数 fold(x, y),用于计算对折一次后边长的长度。如果长边为 x,短边为 y,则对折一次后,长边变为 y,短边变为 (x+y)//2。需要注意,当边长为奇数时,对折后需要向下取整。
接着,对折 n 次。每次将长边和短边传入 fold 函数中,得到对折后的新的长边和短边。如果长边为 a,短边为 b,则需要判断哪个边是长边,将长边和短边传入 fold 函数中。
最后,输出结果,从大到小排序。如果 a 大于 b,则输出 a 和 b,否则输出 b 和 a。
R7-6 输出二维数组每一列的最大值 分数 10 作者 DS课程组 单位 临沂大学 本题要求编写程序,输出一个给定的m×n矩阵各列元素的最大值。
以下是一个可能的解法:
```python
m, n = map(int, input().split())
matrix = []
for i in range(m):
row = list(map(int, input().split()))
matrix.append(row)
# 求各列的最大值
max_values = []
for j in range(n):
max_value = matrix[0][j]
for i in range(1, m):
if matrix[i][j] > max_value:
max_value = matrix[i][j]
max_values.append(max_value)
# 输出结果
for max_value in max_values:
print(max_value, end=" ")
```
首先读入矩阵的大小和各个元素,存储在一个二维列表 `matrix` 中。然后对于每一列,遍历该列的所有元素,找到最大值,存储在列表 `max_values` 中。最后按顺序输出 `max_values` 中的元素即可。
值得注意的是,本题要求在输出每个最大值时,每两个数之间都要有一个空格,因此我们用 `end=" "` 来指定输出末尾的字符为一个空格。