学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
在一个正整数序列中,由若干个连续的数据元素组成的序列,称为该序列的子序列。现输入一个整数序列和一个整数m,寻找一个满足下列条件的子序列:
①该子序列的各元素之和不能超过m。
②在所有满足条件①的子序列中寻找长度为最大(元素个数最多)的子序列。
若满足条件的子序列有多个,则输出最左边的子序列。
例如,整数序列为“1,5,4,2,3,1,5,8,1”,m的值为15,则元素之和不超过m的最长子序列有“[1,5,4,2,3]”和“[4,2,3,1,5]”,长度均为5,根据题目要求可知,最后输出的最长子序列为“[1,5,4,2,3]”。读入一个由整数组成的数据序列,输入m,输出符合条件的最长子序列及该子序列的长度。程序运行界面如图所示。
请回答下列问题:

(1)若原序列为“3,5,4,5,2,3,1,8,3,4”,m=20,则输出的最长子序列为______
(2)函数sumif(b)的功能是求列表b中元素的前缀和,即sumx[1]=b[0],sumx[i]=b[0]+…+b[i-1],请在程序划线处填入合适的代码。
def sumif(b):

sumx[0]=0

for i in range(1,n+1):

sumx[i]=_______

return sumx


(3)主程序如下,请在程序划线处填入合适的代码。
#读入数据,并存入列表d中,代码略
print("序列为:", d)
n=len(d)
m=int(input("请输入m的值:"))
sumx=[0]*(n+1)
sumx=sumif(d)
maxn=0
maxposi=-1
for i in range(0,n+1):

j=i

while _______:

j=j+1

if j-i-1>maxn:

_______

maxposi=i


print("最长子序列长度为:", maxn)
print("最长子序列为:",d[maxposi:maxn+maxposi])
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交