固定斐波那契数的范围为1至50 python

发布于 2025-01-20 00:16:38 字数 793 浏览 0 评论 0原文

我有一组从1到50的数字,从这些数字中我必须找到fibonacci编号,之后我必须找到以下数字1和2

。 ,1、2、3、5、8、13、21、34我写了一个代码,但我无法添加问题的最后一部分,因此它发现以下哪个数字包含一个数字1或2他们。 这是我的代码,

def isPerfectSquare(x):
    s = int(math.sqrt(x))
    return s * s == x


def isFibonacci(n):
    return isPerfectSquare(5 * n * n + 4) or isPerfectSquare(5 * n * n - 4)


for i in range(0, 51):
    if isFibonacci(i) == True:
        print(i, "is a Fibonacci Number")
    else:
        print(i, "is a not Fibonacci Number ")


for q in range(1, 51):
    if isFibonacci(i) == True and '1' in i and '2' in i:
        print(q)
    else:
        print('Error') 

结果是这样的是给我所有这些数字0、1、2、3、5、8、13、21、34作为fibonacci,其余的不是完美的,但是它不断给我错误,我想做的是编写一个循环,其中包含所有类似fibonacci的数字,类似于这些数字0、1、2、3、5、8、13、21、34,并且要打印的数字中包含一个1和2出去,但它只是将所有内容打印为错误。

I have a set of numbers from 1 to 50 and from these numbers I have to find which are Fibonacci number, after that I have to find which of these numbers contain the number 1 and 2.

For example in my code my Fibonacci numbers are 0, 1, 2, 3, 5, 8, 13, 21, 34 I have written a code, but I can't add the last part of the question, so it finds out which of these numbers contain a number 1 or 2 in them.
here is my code

def isPerfectSquare(x):
    s = int(math.sqrt(x))
    return s * s == x


def isFibonacci(n):
    return isPerfectSquare(5 * n * n + 4) or isPerfectSquare(5 * n * n - 4)


for i in range(0, 51):
    if isFibonacci(i) == True:
        print(i, "is a Fibonacci Number")
    else:
        print(i, "is a not Fibonacci Number ")


for q in range(1, 51):
    if isFibonacci(i) == True and '1' in i and '2' in i:
        print(q)
    else:
        print('Error') 

the result is something like this is gives me all of these numbers 0, 1, 2, 3, 5, 8, 13, 21, 34 as Fibonacci and the rest are not which is perfect but then it keeps giving me error, what i wanted to do is it to write a loop that contains all Fibonacci numbers like these 0, 1, 2, 3, 5, 8, 13, 21, 34 and that contain a 1 and 2 in the number to be printed out but it just prints everything as Error.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福还没到 2025-01-27 00:16:38
for q in range(1, 51):
    if isFibonacci(q) == True and '1' in str(q) and '2' in str(q):
        print(q)
    else:
        print('Error') 
  1. 该循环的变量是q,而不是i
  2. 您必须使用 str(...) 将数字转换为字符串。
for q in range(1, 51):
    if isFibonacci(q) == True and '1' in str(q) and '2' in str(q):
        print(q)
    else:
        print('Error') 
  1. This loop's variable is q, not i.
  2. You have to convert the number to string using str(...).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文