【问题标题】:My function doesn't evaluate some values properly我的函数没有正确评估某些值
【发布时间】:2020-07-04 00:13:25
【问题描述】:

背景

对于在线编码活动,我被要求创建一个函数,如果斐波那契数列中任意两个连续数字的乘积等于该数字,则该函数取值并返回 true1支持>.

示例

一个例子是 5895,在斐波那契数列中没有两个数字与它相乘,但最接近它但大于它的两个数字是 89 和 144,所以你会返回 [89,144, False]。

问题

但我遇到了一个问题:我的函数不适用于数字 1 和 0。您可以看到斐波那契数列中的数字都乘以这两个值,但我的函数没有返回任何值。

问题

有人解决了吗?

def productFib(prod):
    num = [0]
    n1 = 0
    n2 = 1
    while max(num) < prod: 
        nth = n1 + n2
        n1 = n2
        n2 = nth
        num.append(n1)
    q = 0
    w = 1
    while w+1 < len(num):
        for nums in num:
            if num[q] * num[w] == prod:
                return [num[q], num[w], True]
            if num[q] * num[w] > prod:
                return [num[q], num[w], False] 
            q += 1
            w += 1

1. 更多:如果两个连续的数字确实乘以目标数字您将返回这两个数字和布尔值True (num1, num2, True)。如果没有两个数字与目标数字相乘,您将返回斐波那契数列中与目标数字相乘的最接近数字的两个连续数字,数字必须大于目标数字,并且必须返回布尔值False(num1, num2, False)。

【问题讨论】:

    标签: python python-3.x function fibonacci


    【解决方案1】:

    我所做的修改修复了适用于 prod=0 和 prod=1 的函数。

    def productFib(prod):
        num = [0]
        n1 = 0
        n2 = 1
        while max(num) <= prod:
            nth = n1 + n2
            n1 = n2
            n2 = nth
            num.append(n1)
        q = 0
        w = 1
        while w+1 <= len(num):
            for nums in num:
                if num[q] * num[w] == prod:
                    return [num[q], num[w], True]
                if num[q] * num[w] > prod:
                    return [num[q], num[w], False]
                q += 1
                w += 1
    

    我没有检查大量输入,但它似乎有效。

    来自评论:while 循环没有运行。在零的情况下:w+1 不小于 len(num),因为两者都等于 2。在 1 的情况下:max(num) 不小于 prod,因为两者都是 1。

    【讨论】:

    • 完美运行,谢谢!我只是想多了一个问题。我不会简单地获取其他人的代码并使用它而不从该活动中获取任何内容。那么,你有什么类似的速记解释为什么添加小于或等于符号来修复它?
    • while 循环没有运行。在零的情况下:w+1 不小于 len(num),因为两者都等于 2。在 1 的情况下:max(num) 不小于 prod,因为两者都是 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 2021-08-18
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多