Функции: Напишите программу 4

Сообщения
1 471
Реакции
271
Сайт
tehadm.ru
Последовательность Фибоначчи определена следующим образом: φ1=1, φ2=1, φn=φn-1+φn-2 при n>1. Начало ряда Фибоначчи выглядит следующим образом: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Напишите функцию, которая по указанному натуральному n возвращает φn.

Входные данные
Вводится одно число n.

Выходные данные
Необходимо вывести значение φn.

Sample Input:
4

Sample Output:
3
 
C-подобный:
func fibonacci(n int) int {
    if n == 0 {
        return 0
    } else if n == 1 {
        return 1
    } else {
        return fibonacci(n-1) + fibonacci(n-2)
    }
}

Полный код:
C-подобный:
package main

import "fmt"

func main() {
    var num1 int
    fmt.Scan(&num1)

    fmt.Println(fibonacci(num1))
}

func fibonacci(n int) int {
    if n == 0 {
        return 0
    } else if n == 1 {
        return 1
    } else {
        return fibonacci(n-1) + fibonacci(n-2)
    }
}
 
C-подобный:
func fibonacci(n int) int {
    const goldenRatio float64 = 1.618033988749895
    const sqrt5 float64 = 2.2360679775
    var interim float64 = 1.

    for i := 0; i < n; i++ {
        interim *= goldenRatio
    }
    interim /= sqrt5
    
    integerPart := int(interim)
    if interim-float64(integerPart) >= .5 {
        integerPart++
    }
    
    return integerPart
}
 
C-подобный:
func fibonacci(n int) int {
    slice := []int{1, 1}
    for i := 1; i < n; i++ {
        slice = append(slice, slice[i]+slice[i-1])
    }
    return slice[n-1]
}
 
C-подобный:
func fibonacci(n int) int {
    var result int
    if n == 1 || n == 2 {
        result = 1
    } else {
        var f1, f2, fnumber int = 1, 1, 2
        for ; fnumber != n; fnumber++ {
            f1, f2 = f2, f1+f2
        }
        result = f2
    }
    return result
}
 
C-подобный:
func fibonacci(n int) int {
    f1, f2 := 0, 1
    for i:=1;i<=n;i++ {
        f1, f2 = f2, f1+f2
    }
    return f1
}
 
C-подобный:
func fibonacci(n int) int {
   fib := make([]int, n+1)
    fib[0], fib[1] = 0, 1
    for i := 2; i <= n; i++ {
        fib[i] = fib[i-1] + fib[i-2]
    }
    return fib[n]
}
 
C-подобный:
func fibonacci(n int) int {
    x1, x2 := 0, 1
    for cnt := 2; cnt <= n; cnt++{
        x1, x2 = x2, x2 + x1
    }
    return x2
}
 
C-подобный:
func fibonacci(n int) int {
    var lev, prav int
    lev=1
    prav=1
    for i:=3;i<=n;i++ {
        lev, prav= prav, lev+prav
    }
    return prav   
}
 
Назад
Верх Низ