信息技术来源:浙江省县域教研联盟高三年级5月高考模拟考试
第 10 题
答案与解析
本题解析
参考答案
B
程序分析
i,c,t = 1,0,0
while i <= len(s)-1:
if s[i] <= s[i-1]:
c = c+int(s[t:i])
t = i
i += 1
print(c)i 从1开始逐个向后移动,每轮比较相邻字符 s[i] 与 s[i-1]。若后一个字符更大,就继续扫描;若后一个字符小于或等于前一个字符,则将 s[t:i] 转为整数累加到 c,再令 t=i,从当前字符开始下一段。
t 初始为0,每次累加后移到新一段的起点,因此它记录当前连续递增段的起始下标。切片 s[t:i] 不包含下标 i,累加的是刚刚结束的那一段。
对字符串 142633189,触发累加的位置如下:
| i | 触发条件 | 累加的子串 | 累加后的 c |
|---|---|---|---|
| 2 | "2" ≤ "4" | "14" | 14 |
| 4 | "3" ≤ "6" | "26" | 40 |
| 5 | "3" ≤ "3" | "3" | 43 |
| 6 | "1" ≤ "3" | "3" | 46 |
末段 189 一直递增,未再次触发累加;循环结束后直接输出 c,也没有补加末段。因此输出为 14+26+3+3=46。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_xianyujiaoyan_q010
