„Fibonacci“ serijos programa „Java“ sistemoje naudojant „Loops & Rekursija

Turinys:

Anonim

Kas yra „Fibonacci“ serija?

„Fibonacci“ serijoje kitas skaičius yra ankstesnių dviejų skaičių suma. Pirmieji du „Fibonacci“ serijos skaičiai yra 0 ir 1.

„Fibonacci“ skaičiai yra reikšmingai naudojami atliekant skaičiavimo algoritmo vykdymo laiką, siekiant nustatyti didžiausią bendrą dviejų skaičių daliklį. Aritmetikoje Wythoffo masyvas yra begalinė skaičių matrica, gaunama iš „Fibonacci“ sekos.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21,… 

„Java“ kodas naudojant „For Loop“

// Naudojant kilpąviešoji klasė „FibonacciExample“public static void main (String [] argumentai){// Nustatykite jį į norimą „Fibonacci“ serijos elementų skaičiųint maxNumber = 10;int ankstesnisNumeris = 0;int nextNumber = 1;System.out.print („Fibonacci serija„ + maxNumber + “numeriai:“);už (int i = 1; i <= maxNumber; ++ i){System.out.print (ankstesnisNumeris + "");/ * Kiekvienai iteracijai priskiriame antrą skaičių* prie pirmo skaičiaus ir paskiriant paskutinių dviejų sumą* skaičiai iki antrojo skaičiaus* /int suma = ankstesnis skaičius + kitas skaičius;ankstesnis skaičius = kitas skaičius;nextNumber = suma;}}}
Išvestis:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
Programos logika:
  • ankstesnis skaičius inicijuojamas į 0, o kitas skaičius - 1
  • Nes ciklas kartojasi maxNumber
    • Rodyti ankstesnįNumber
    • Skaičiuoja ankstesnio ir kito skaičiaus sumą
    • Atnaujinamos naujos ankstesnio ir kito skaičiaus reikšmės

„Java“ kodas naudojant „While Loop“

Taip pat galite sugeneruoti „Fibonacci“ serijas naudodami a

While kilpa „Java“.
// Naudojant kilpąviešoji klasė „FibonacciWhileExample“public static void main (String [] argumentai){int maxNumber = 10, ankstesnisNumber = 0, nextNumber = 1;System.out.print („Fibonacci serija„ + maxNumber + “numeriai:“);int i = 1;o (i <= maxNumber){System.out.print (ankstesnisNumeris + "");int suma = ankstesnis skaičius + kitas skaičius;ankstesnis skaičius = kitas skaičius;nextNumber = suma;i ++;}}}
Išvestis:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Vienintelis programos logikos skirtumas yra „WHILE Loop“ naudojimas spausdinant „Fibonacci“ numerius

„Fibonacci“ serija, pagrįsta vartotojo įvestimi

// fibonacci serija, pagrįsta vartotojo įvestimiimportuoti java.util.Scanner;viešoji klasė „FibonacciExample“public static void main (String [] argumentai){int maxNumber = 0;int ankstesnisNumeris = 0;int nextNumber = 1;System.out.println ("Kiek skaičių norite„ Fibonacci “:");Skaitytuvo skaitytuvas = naujas skaitytuvas (System.in);maxNumber = skaitytuvas.nextInt ();System.out.print („Fibonacci serija„ + maxNumber + “numeriai:“);už (int i = 1; i <= maxNumber; ++ i){System.out.print (ankstesnisNumeris + "");/ * Kiekvienai iteracijai priskiriame antrą skaičių* prie pirmo skaičiaus ir paskiriant paskutinių dviejų sumą* skaičiai iki antrojo skaičiaus* /int suma = ankstesnis skaičius + kitas skaičius;ankstesnis skaičius = kitas skaičius;nextNumber = suma;}}}
Programos logika:

Logika yra tokia pati kaip ir anksčiau. Užuot užkodavus „Fibonacci“ serijoje rodomų elementų skaičių, vartotojo prašoma parašyti numerį.

„Java“ kodas naudojant „Recursion“

// Rekursijos naudojimasviešoji klasė „FibonacciCalc“public static int fibonacciRecursion (int n) {jei (n == 0) {grąžinti 0;}jei (n == 1 || n == 2) {grąžinti 1;}grįžtamasis fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print („Fibonacci serija„ + maxNumber + “numeriai:“);už (int i = 0; i  Išvestis: 
Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34
Programos logika:

Rekursyvioji funkcija yra ta, kuri gali save vadinti.

rekursija ():

  1. Paima įvesties numerį. Tikrina 0, 1, 2 ir atitinkamai pateikia 0, 1, 1, nes „Fibonači“ seka prasideda nuo 0, 1, 1.
  2. Kai įvestis n yra = = 3, funkcija pasikvies rekursyviai. Skambinama du kartus. Pažiūrėkime 4 įvesties pavyzdį.
fibonacciRecursion (4)It will recursively call fibonacciRecursion function for values 2 and 3fibonacciRecursion (2) \\ call for value 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1fibonacciRecursion (3) \\ It will call for 1 and 2fibonacciRecursion (1) = 1fibonacciRecursion (2) \\ It will call for 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1

Dabar rezultatas pridėtas 0 + 1 + 1 + 0 + 1 = 3