- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题是...
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
我已经编写了一个应该执行此操作的代码,粘贴在下面:
public class Main {
public static void main(String[] args) {
// Setting up the variables. sumF3 will be printed at the end.
int sumF1 = 1;
int sumF2 = 2;
int sumF3 = 0;
// If loops to cancel out the odd numbers, but let them be added to sumF2 etc anyway.
while(4000000 > sumF1) {
if (sumF1 % 2 == 0) {
sumF3 += sumF1;
}
if (sumF2 % 2 == 0) {
sumF3 += sumF2;
}
// Normal fibonacci sequence.
sumF1 += sumF1 + sumF2;
sumF2 += sumF1 + sumF2;
}
System.out.println(sumF3);
}
}
我首先用两个 if 循环过滤掉奇数,然后将其添加到 sumF3。它将继续添加到 sumF3 中,直到它达到 400 万以下。当 while 循环停止时,它应该打印出“4613732”,但它打印出不同的东西 (4194302)。我觉得这里有一个逻辑缺陷。
最佳答案
您的斐波那契数列中的表达式不正确。您正在执行以下操作:
// Normal fibonacci sequence.
sumF1 += sumF1 + sumF2;
sumF2 += sumF1 + sumF2;
本质上是这样做的:
sumF1 = sumF1+sumF1+sumF2,sumF2 = sumF2+sumF1+sumF2。
如果将表达式更改为以下内容,您应该会得到正确答案:
// Normal fibonacci sequence.
sumF1 += sumF2;
sumF2 += sumF1;
+= 运算符将表达式的值与变量的值相加,并将结果赋给变量。您正在混合中添加一个额外的变量,这会影响您的结果。
关于java - Fibonacci - 为什么这给我错误的计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117635/
所以我正在学习动态规划,我正在尝试测试我的内存解决方案与普通斐波那契解决方案。当我输入相当大的数字(如 43)时,我的内存解决方案需要永远运行,而正常的解决方案会在 5 - 6 秒后运行。这是否意味着
我必须找到一种方法来确定数据类型 long 在出现位溢出之前将保留斐波那契序列的多少次迭代。我不断收到错误: Exception in thread "main" java.lang.ArrayInd
从 F(n) 计算斐波那契数之和的最有效方法是什么?至 F(m)哪里F(n)和 F(m)分别是第 n 个和第 m 个斐波那契数,0 =< n <= m <109(其中 F(0)=0,F(1)=1)。
我有一个已启动并正在运行的 Haskell 函数,但它做错了事。 它应该输出一个斐波那契数列直到指定的最大数。 像这样: fibonacciSequence 86 1 1 2 3 5 8 13 21
我正在学习 Haskell,我写了一个简单的斐波那契函数: fib :: Int -> Int fib 1 = 1 fib 0 = 0 fib n = (fib (n-1)) + (fib (n-2)
我将使用 Javascript 编写一些代码。这是我们要做的: “使用闭包实现一个 javascript 斐波那契数列。具体来说,编写一个函数来存储两个连续的斐波那契数列,最初是 0 和 1。该函数还
这是一个程序,它接受一个命令行变量,将其解析为一个 int,输出是等于该命令行参数的斐波那契数。因此,如果我输入 7,输出将为 13。因为: 1 1 2 3 5 8 13有人能解释一下 b = a;在
我想为一个小游戏编写关卡系统。等级系统将与分数 Hook ,等级将进一步上升只给出了2个score值 lvl, 分数 0、50(从 0 - 50) 1、100(从 51 到 100) 2, 150 3
我的斐波那契代码遇到了一些问题。如果我想在数组(输入)中找到数字 5 的位置,系统说它的位置是 5,但它应该说 6?此外,如果我输入一个不在数组中的数字,系统会说它位于位置 20(例如输入 200)。
斐波那契堆在摊销的意义上是高效的,但在最坏的情况下它们的效率如何?具体来说,在 n 节点斐波那契堆上,这些操作中的每一个的最坏情况时间复杂度是多少? 找到分钟 删除分钟 插入 减少键 合并 最佳答案
可以创建一个快速的“给出第 n 个斐波那契数”函数,如所述 here .有没有一种方法可以编写在 O(1) 中执行的 isFibonacci(int i) 函数? 我可以预先计算值。但是计算最后一个
问题是... Each new term in the Fibonacci sequence is generated by adding the previous two terms. By sta
一:递归实现 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。 二:数组实现 空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快。 三:
题目地址:https://leetcode.com/problems/fibonacci-number/ 题目描述 TheFibonacci numbers, commonly denoted F
有没有一种方法可以在 APL 中使用不需要循环或流量控制的单行创建斐波那契数列? 我已经使用 → 的函数完成了它和条件测试,但我觉得必须有一种更优雅、声明式的方式。安 example我发现声称在一行上
我正在尝试解决第二个欧拉问题(计算所有偶数斐波那契数的总和< 400万),到目前为止我已经想出了这个: public class CCTrial1 { public static void f
Fibonacci LFSR wiki上有介绍,很简单。 我想计算一些 Fibonacci 的 LFSR 的周期,然后使用生成的序列进行加密。 让我们以维基为例: x16 + x14 + x13 +
我创建了以下简单的斐波那契实现: #![feature(test)] extern crate test; pub fn fibonacci_recursive(n: u32) -> u32 {
这是给定的斐波那契数列: 1,1,2,3,5,8,13,21 这意味着 n = 8。这是我的斐波那契代码: def fib(n, count= 0): if n == 0: r
此代码返回缓慢且输出不同: from numba import jit from timeit import default_timer as timer def fibonacci(n):
我是一名优秀的程序员,十分优秀!