
























这是一个创建于 2007 天前的主题,其中的信息可能已经有所发展或是发生改变。
有结果返回数列,无结果返回-1
输入 525 6
返回 85 86 87 88 89 90
输入 3 5
返回 -1
题目倒是不难
根据 (beg +end) *num/2 = sum
倒推 beg= (2*sum/num-num+1)/2
但是这种题怎么算才能满足 100%通过率?
最高才 45%
第 1 条附言 · 2020 年 12 月 21 日
import sys
def func1(sum, num):
if sum > 0 & num > 0 & int(sum) == sum & int(num) == num:
beg = (sum * 2 / num - num + 1) / 2
if beg % 1 == 0 & beg != 0:
return [i for i in range(int(beg), int(beg) + num)]
else:
return -1
else:
return -1
for line in sys.stdin:
a = line.split()
if len(a) != 2:
print(-1)
sum, num = a[0], a[1]
if type(int(sum)) == type(int(num)) == type(1):
print(func1(int(sum), int(num)))
else:
print(-1)
1 LewisHorse 2020 年 12 月 14 日 via Android判断无结果的条件是怎么写的? |
2 6167 2020 年 12 月 14 日@LewisHorse |
3 xsonglive491 2020 年 12 月 14 日你直接判断 beg 是否是正整数就行了,(2*sum/num-num+1)为大于 0 的偶数 |
5 xsonglive491 2020 年 12 月 14 日@6167 num <=0 or num*num > 2* sum or (2*sum/num-num+1) %2 !=0 :return -1 |
6 Vanquish5419 2020 年 12 月 16 日很简单啊,beg = s/n - (n-1)/2 |
7 lidlesseye11 2020 年 12 月 16 日通过率是啥意思,测试 case 吗?那失败的 case 不给告诉的吗? |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。