已知(A例:表示循环次数; A_1例表示数值)
A例 A_1例
a=30 ; a_1=0.45
b=31 ; b_1=0.43548
c=32 ; c_1=0.43
d=33 ; d_1=0.42
e=34 ; e_1=0.41
f=35; f_1=0.40
g=36 ; g_1=0.39
h=37 ; h_1=0.38
例: 当a循环到23次时,a_1相加大于等于10(10.35),再减去10,为0.35,然后开始循环b,并a_-1与b-1相加;a循环到30次后结束相加结果为6.19839,b继续循环到16次后相加结果等于或大于10(10.11774 ),得到的结果再减去10为0.11774,再开始C循环,以此类推
求出每次为10的循环次数及值的大小
谢谢,刚弄了好久,没有成功,是不是我的箱套出了问题,
我上面的代码,是可以运行的。python 3.9 或3.10,你报什么错?好了没有?
追问没有成功,但还是谢谢您,毕竟思路是对的,慢慢研究
追答#你上面图片倒数第五行,不对
# 你用下面的代码试试,将前面的#号,换成空格。
da =[
########['a',30,0.45],
########['b',31,0.43548],
########['c',32, 0.43],
########['d',33, 0.42],
########['e',34, 0.41],
########['f',35, 0.40],
########['g',36, 0.39],
########['h',37, 0.38]
####]
li = [] # 存放符合条件的数
lp = [] # 正参与循环的数
total = 0.0 # 求和
no = 0 # 总循环次数
i,ln = 0,len(da)
while True:
####if i = 10:
############li += [[no,round(total-10,5)]]
############total = 0
############break
####if i==ln and lp == []:
########print('最后值为:{}'.format(total))
########break
print('\n符合条件的值有{}个,他们如下:\n'.format(len(li)),'-'*50)####
st = [[da[0][0],0]]
for i in range(1,ln):
####st +=[[da[i][0],li[i-1][0]]]
for i in range(len(li)):
####for j in range(ln):
########if st[j][1] >= li[i][0]:
############break
########elif i>0 and st[j][1]+da[j][1] < li[i-1][0] :
############continue
########print('{}循环到{}次,'.format(st[j][0],min(da[j][1],li[i][0]-st[j][1])),end='')
####print('总循环{}次后,符合条件值为:{}'.format(*li[i]))