我想用python造一个函数判断是否一个序列是超增序列,即序列中的每个数必须大于其前面所有数的总和,如果是,返回True,否则返回False
以下是我的思路,然而如果传入super_increasing((0, 1, 2, 4))时候返回的是False,应该返回True才对,不知错误在哪,还望大家指教
我想用python造一个函数判断是否一个序列是超增序列,即序列中的每个数必须大于其前面所有数的总和,如果是,返回True,否则返回False
以下是我的思路,然而如果传入super_increasing((0, 1, 2, 4))时候返回的是False,应该返回True才对,不知错误在哪,还望大家指教
1、for i in range(len(seq)-1) 起始是0,i=0时,if满足条件(此时seq[:0])=[];而sum([]) = 0),所以if条件为true,执行return,结束函数。
2、range(a,b) 取值为左闭右开,即[a,b)
3、range(b) 中省略a,默认值是0
综上,i应该从1开始,到len(seq)-1结束(用range表示为:range(1, len(seq)));
故for i in range(len(seq)-1)修改为for i in range(1,len(seq))