Commit 35e31a58 by Patryk Czarnik

fib

parent 32fac383
package p09_funkcje;
import java.util.Scanner;
public class Fibonacci {
// Ciąg Fibonacciego: na pozycji 0 jest wynik 0, na pozycji 1 jest wynik 1,
// a każda kolejna liczba Fibonacciego jest sumą dwóch poprzednich
// 0 1 1 2 3 5 8 13 21 34 55
// F(9) = 34
static long fibr(int n) {
if(n <= 1)
return n;
return fibr(n-1) + fibr(n-2);
}
static long fib(int n) {
long ostatnia = 0;
long przedostatnia = 1;
for(int i = 1; i <= n; i++) {
long nowa = ostatnia + przedostatnia;
przedostatnia = ostatnia;
ostatnia = nowa;
}
return ostatnia;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("Podaj liczbę: ");
int n = scanner.nextInt();
if(n < 0) break;
// System.currentTimeMillis()
long p = System.nanoTime();
var wynik = fib(n);
long k = System.nanoTime();
System.out.printf("F(%d) = %d, czas %.3fs%n", n, wynik, (k-p) * 1e-9);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment