酷代码 AI
菜单

有 名同学站成一队,已知每名同学的身高 (单位: 厘米),请比较该队中任意相邻两名同学的身高差 (取正值),并输出最大的身高差。 例如: , 名同学的身高分别是151、120、144、182、160、158、147、161 相邻两名同学的身高差依次是31、24、38、22、2、11、14,其中最大身高差是38. 输入 第一行,读入一个整数n, 第二行,读入n个整数。 输出 输出相邻的最大身高差。 样例输入 复制 8 151 120 144 182 160 158 147 161 样例输出 复制 38

以下是使用 Python 实现该功能的代码: ```python # 读取同学的数量 n = int(input()) # 读取每个同学的身高 heights = list(map(int, input().split())) # 初始化最大身高差为 0 max_diff = 0 # 遍历相邻的同学,计算身高差 for i in range(n - 1): # 计算相邻两名同学的身高差(取正值) diff = abs(heights[i] - heights[i + 1]) # 如果当前身高差大于最大身高差,则更新最大身高差 if diff > max_diff: max_diff = diff # 输出最大身高差 print(max_diff) ``` 代码解释 1. 读取输入: - 第一行读取同学的数量 `n`。 - 第二行读取 `n` 个整数,表示每个同学的身高,存储在列表 `heights` 中。 2. 初始化最大身高差: - 初始化变量 `max_diff` 为 0,用于存储最大的身高差。 3. 计算相邻同学的身高差: - 使用 `for` 循环遍历列表 `heights`,循环范围是从 0 到 `n - 2`,因为要计算相邻元素的差值。 - 在每次循环中,使用 `abs()` 函数计算相邻两名同学的身高差(取正值),并存储在变量 `diff` 中。 - 如果 `diff` 大于 `max_diff`,则更新 `max_diff` 的值。 4. 输出结果: - 循环结束后,`max_diff` 中存储的就是最大的身高差,将其输出。 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是同学的数量。因为只需要遍历一次列表。 - 空间复杂度:$O(n)$,主要用于存储同学的身高列表。 Pascal 实现 ```pascal program MaxHeightDifference; uses SysUtils; const MaxN = 1000; var n, i: integer; heights: array[1..MaxN] of integer; max_diff, diff: integer; begin // 读取同学的数量 readln(n); // 读取每个同学的身高 for i := 1 to n do read(heights[i]); // 初始化最大身高差为 0 max_diff := 0; // 遍历相邻的同学,计算身高差 for i := 1 to n - 1 do begin // 计算相邻两名同学的身高差(取正值) diff := abs(heights[i] - heights[i + 1]); // 如果当前身高差大于最大身高差,则更新最大身高差 if diff > max_diff then max_diff := diff; end; // 输出最大身高差 writeln(max_diff); end. ``` Pascal 代码解释 1. 常量和变量定义: - 定义常量 `MaxN` 表示最大同学数量。 - 定义变量 `n` 表示同学数量,`i` 作为循环变量。 - 定义数组 `heights` 存储同学的身高,`max_diff` 存储最大身高差,`diff` 存储当前计算的身高差。 2. 读取输入: - 读取同学的数量 `n`。 - 使用 `for` 循环读取每个同学的身高,存储在数组 `heights` 中。 3. 初始化最大身高差: - 将 `max_diff` 初始化为 0。 4. 计算相邻同学的身高差: - 使用 `for` 循环遍历数组 `heights`,计算相邻元素的身高差(取正值)。 - 如果当前身高差大于 `max_diff`,则更新 `max_diff` 的值。 5. 输出结果: - 循环结束后,输出 `max_diff` 的值。 [2025-12-09 17:35:48 | AI问答 | 934点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多