失败的隐藏CodeFights测试 - 无法找到代码中的缺陷

时间:2016-11-30 23:22:26

标签: python python-2.7

这是我未能通过隐藏测试的挑战:

  

给定整数n,l和r,找出将n表示为两个整数A和B之和的方法的数量,使得l≤A≤B≤r。

这是我的代码:

def countSumOfTwoRepresentations2(n, l, r):
    #initializing return variable
    totalcount = 0
    #returns 0 in impossible cases
    if (l + r > n):
        return 0
    if (r + r < n):
        return 0
    if (r < (n/2)) or (l > (n/2)):
        return 0
    # finding the total number of possibilities
    p = n / 2
    # finding which if l or r is further from 0 or n, respectively
    c = max((n-r),l)
    # removing impossible cases
    totalcount = (p - c) + 1
    return totalcount

它传递了我可以看到输入的所有测试(以及我能想到的每个自定义的输入),但是在其中一个隐藏的测试中失败了。我缺少任何明显的缺陷?感谢

1 个答案:

答案 0 :(得分:1)

正如user2357112所指出的,你已经拒绝了一些有效的案例,例如11,5,9:仍然允许6 + 5作为解决方案。

由于整数除法,您也未能拒绝无效案例,例如11,2,5,其中n == 2 * r + 1;但是,在这些情况下,您的计算自然会返回0。 我错了: r + r&lt; n 会抓住这种情况,但这意味着你的r&lt; (n / 2)案例是多余的

如果您的测试仍然有问题,请包括您的测试类和测试向量(输入集)。