# fibonacci.rb
def fibonacci(number)
if number < 2
number
else
fibonacci(number - 1) + fibonacci(number - 2)
end
end
puts fibonacci(6)
结果是8,但当我在脑海中做的时候,我得到了9。
指向站点代码的链接位于底部附近。我就是不明白。
为什么我声明变量是全局的,而它们在如果else if else块中是相同的?我遗漏了什么?
function f(N)
for n in 0:N
if n == 0
fibonacci_n = 0
fibonacci_n_1 = fibonacci_n
elseif n == 1
fibonacci_n = 1
fibonacci_n_1 = fibonacci_n
fibonacci_n_2 = fibonacci_n_1
else
global fibonacci_n_
所以我要做的是向用户询问一个数字,并找出它的fibonacci术语是什么。到目前为止,如果输入整数0 <=,则返回正确的fibonacci项。但是当我尝试使用负数时,我会得到一个错误。
代码:
public int fib(int n) {
if (n == 0 || n == 1 || n == -1) {
// if n is 1, 0 or -1
return Math.abs(n);
} else if (n < 0) {
// if n is negative
从评论中我最感兴趣的是:
代码的性能
全面审查代码结构、样式规则和命名约定。
问题:2
通过考虑Fibonacci序列中值不超过400万的项,找出偶数项的和。
import math
import itertools
#----------------------------------------------------------------------------------
def calc_fibonacci_num(n):
"""Calculates the fibonacci number at the given index.
Argu
下面的例子来自Allen Downey的"Think Python“一书。在解释字典中“备忘录”的概念时,他引用了下面的例子。
known = {0:0, 1:1}
def fibonacci(n):
if n in known:
return known[n]
res = fibonacci(n-1) + fibonacci(n-2)
known[n] = res
return res
fibonacci(5)
print known
我期望这段代码返回{0:0, 1:1, 5:5},因为我没有看到任何迭代来计算1到5之间的每个值的函数
我用回忆录实现了一种计算斐波纳契数的方法。
public class MemoizedFibonacci {
private static final List<BigInteger> FIBONACCI_LIST = new ArrayList<>();
static {
FIBONACCI_LIST.add(BigInteger.ZERO);
FIBONACCI_LIST.add(BigInteger.ONE);
}
public static BigInteger fibonacci(final i
我的代码结果是无穷无尽的数字"2",我不明白为什么。
另外,我的导师告诉我要添加负值的验证--我不知道怎么做。
public class FibonacciRecursive {
public static void main(String[] args) {
int fibonacciNumberOrder = 10;
do {
System.out.print(fibonacci(fibonacciNumberOrder) + " ");
} while (true);
def fibonacci(n):
if n == 0 or n == 1: # base c a s e s
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10))
当fibonacci(10)被调用时,fibonacci(n-1)是否先被解析到基本情况,然后再解决fibonacci(n-2)?
我试图了解递归子程序是如何工作的。例如,这个递归函数计算fibonacci数。
RECURSIVE FUNCTION fibonacci(n) RESULT(fibo)
IMPLICIT NONE
INTEGER, INTENT(IN) :: n
INTEGER :: fibo
IF (n <= 2) THEN
fibo = 1
ELSE
fibo = fibonacci(n-1) + fibonacci(n-2)
END IF
END FUNCTION fibonacci
不幸的是,我不能用递归子程序计算它。
RECURSIVE SUBROU
我试图通过编写一个简单的程序来输出斐波那契数来学习C。这不管用。
fibonacci.h
unsigned int fibonacci_recursive(unsigned int n);
fibonacci.c
#include <stdio.h>
#include "fibonacci.h"
main() {
unsigned int i;
for (i = 0; i < 10; i++) {
printf("%d\t%n", fibonacci_recursive(i));
}
getch
这是一个密码
cat fibonacci.asm
fibonacci:
push EBP ; Retrieve parameter and put it
push EBX ; Save previous parameter
mov EBP,ESP ; into EBX register
add EBP,12 ;
mov EBX,[EBP] ; EBX = Param
cmp EBX,1 ; Check for base case
jle base ; It i
好的,我已经想出了如何使序列结果成一行,现在我必须添加一个str.
以下是预期的产出:
输入n: 10
斐波那契数=1 1 2 3 5 8 13 21 34 55
这是我的代码:
n = input("Enter n: ")
def fib(n):
cur = 1
old = 1
i = 1
while (i < n):
cur, old, i = cur+old, cur, i+1
return cur
for i in range(10):
print("Fibonacci numbers =
我正在C++17中实现Fibonacci范围,以便它支持
#include "fib.h"
#include <iostream>
int main() {
for (int x : Fibonacci()) {
std::cout << x << std::endl;
if (x > 100000) {
break;
}
}
for (int x : Fibonacci(5)) {
std::cout << x << std::endl;
}
在向KDevelop C++项目添加新类后,链接器在查找确切的源代码(本例中为calculation.cpp)时遇到了问题:
-- Build files have been written to: /var/www/C++/fibonacci/build
Scanning dependencies of target fibonacci
Linking CXX executable fibonacci
CMakeFiles/fibonacci.dir/main.cpp.o: In function `main':
/var/www/C++/fibonacci/main.cpp:12:
我使用的是Racket (Scheme/Lisp的导数),我编写了这个Fibonacci算法,它使用累加器:
(define (fibonacci* n)
(local (; NaturalNumber NaturalNumber NaturalNumber -> NaturalNumber
; Add accumulators for current and previous fibonacci numbers
(define (fibonacci-acc x current previous)
(if (= x n)
我有一个代码块,让用户输入斐波那契数。代码块:
numb_list = [0, 1, 2, 3, 5, 8, 13, 21, 34, 55]
numb = int(input('Enter the next Fibonacci number >'))
while numb in numb_list and numb <= 50:
numb = int(input('Enter the next Fibonacci number >'))
if numb in numb_list:
我有fibonacci序列的代码:
public class Fibonacci {
private List<Integer> fibonacci;
public void fillFibonacci(){
fibonacci = new ArrayList<>();
int n1 = 1 , n2 = 1 , n3;
fibonacci.add(n1);
fibonacci.add(n2);
for(int i = 2 ; i < 4000 ; i ++){
我正在努力寻找斐波那契数列中不超过100的所有项。下面是我的代码:
fibonacci_sequence = [1,2]
index = fibonacci_sequence.length
# finding next term, term 3
# current index is 2
next_term = fibonacci_sequence[index - 2] + fibonacci_sequence[index - 1]
fibonacci_sequence.push(next_term)
index += 1
until next_term > 100 do
next
嗨,我想调试这两个代码(fibonacci与递归版本,另一个是fibonacci与迭代版本)。我想知道它们在性能上的区别。但我不知道如何调试这些代码,请帮助我谢谢。
fibonacci (递归):
public class Two{
public static void main(String[] args){
final Two obj = new Two();
int sum = 0, i = 1;
obj.fibonacci(i);
while(obj.fibonacci(i) < 4000001){
目前,我正在尝试编写javascript来做斐波那契序列。我得到了数学部分,但我们必须有一个名为fibonacciResults的数组,我不确定如何使用名为fibonacciResults的数组并初始化它,使斐波那契(0)为0,斐波那契( 1 )为1。另外,如果以前从未计算过结果(斐波纳契(N)),则递归计算新结果并将其保存在fibonacciResults数组中。 document.querySelector('#calculate-fibonacci').addEventListener('click', function () {
v
我是R的新手,所以在C和Python中看起来很好的东西,在R中出人意料地崩溃了。我试图计算前1000个斐波那契数的乘积。下面是完整的代码:
#PRRODUCT OF FIBONACCI NUMBERS
Fibonacci<-rep(0, 1000)
Fibonacci[0]<-1
Fibonacci[1]<-1
Product<-1
for (i in 2:1000)
{
Fibonacci[i]<-(Fibonacci[i-1])+(Fibonacci[i-2])
Product<-Fibonacci[i]*Product
}
Fibo