[PYTHON] Beispielprogramm zum Auffinden der Fibonacci-Sequenz

Als ich über [FizzBuzz-Problem] nachdachte (https://qiita.com/ytaki0801/items/1309b33d55d106d84bd5), programmierte ich auch das Problem "Erstellen Sie ein Programm, das (vorerst) 45 Fibonacci-Sequenzen generiert und anzeigt". Ich frage mich, ob es eine Art Indikator dafür sein könnte. In den Tags in diesem Artikel und in den Kommentaren im Beispielcode finden Sie, was Sie sagen möchten.

Die Ausführung des folgenden Beispielprogramms (ohne Kommentare) wurde auf dieser Website bestätigt.

Für C.

fib.c


#include <stdio.h>

// #define NOT_TAILRECUR

#ifdef NOT_TAILRECUR
unsigned long long fib(int x)
{
  if (x == 0)
    return (0);
  else
  if (x == 1)
    return (1);
  else
    return (fib(x-1) + fib(x-2));
}
#else
unsigned long long fib_r(
  int x,
  unsigned long long a,
  unsigned long long b)
{
  if (x == 0)
    return (a);
  else
    return (fib_r(x-1, b, a+b));
}
unsigned long long fib(int x)
{
  return (fib_r(x, 0, 1));
}
#endif

int main(void)
{
  for (int n = 0; n < 45; n++)
    printf("%llu ", fib(n));
  printf("\n");
  return (0);
}

Für Python

fib.py


#### not tail-recur
#def fib(x):
#    if x == 0:
#      return (0)
#    elif x == 1:
#      return (1)
#    else:
#      return (fib(x-1) + fib(x-2))

def fib(x):
  def fib_r(x,a,b):
      if x == 0:
        return (a)
      else:
        return (fib_r(x-1, b, a+b))
  return (fib_r(x,0,1))

for i in range(45):
  print(fib(i), "", end="")

Für Schema

fib.scm


;;;; not tail-recur
;(define fib
;  (lambda (x)
;    (cond ((equal? x 0) 0)
;          ((equal? x 1) 1)
;          (else
;            (+ (fib (- x 1)) (fib (- x 2)))))))

(define fib
  (lambda (x)
    (let loop ((x x) (a 0) (b 1))
      (if (equal? x 0) a (loop (- x 1) b (+ a b))))))

(print (map fib (iota 45)))

Recommended Posts

Beispielprogramm zum Auffinden der Fibonacci-Sequenz
Vielen Dank für die Fibonacci-Sequenz.
[Python] Ein Programm zum Finden einer Fibonacci-Zahlenfolge (rekursive Funktion, Divisions-Governance-Methode, dynamische Planungsmethode)
Ein Shell-Programm, das eine Fibonacci-Sequenz anzeigt
Liste der Verteilungsseiten für Beispielprogramme für Python-Bücher
Programm zum Studium der Statistik
Implementierung der Fibonacci-Sequenz
[Python] Beispielcode für die Python-Grammatik