» »

[Naloga](Java)Fibonaccijevo zaporedje

[Naloga](Java)Fibonaccijevo zaporedje

Marksman ::

Lep pozdrav.

Išče se mojster, za hitro razlago Fibonaccijevega zaporedja v javi. Sama naloga verjetno večino ni težka, vendar za frišnega amaterja iz ekonomske šole pa je prevelik zalogaj.
Ne bi rad tukaj objavil navodila, vendar bi bil zelo hvaležen, če bi se kdo javil na moj ZS in se nadaljuje tam.

Tutankhamun ::

ta naloga je že parkrat bla narejena na tem forumu, dej Iskanje pa upiš fibonači, al pa wiki... kuj dobiš kodo

java fibonacci
AMD Phenom QUAD 9950 Black Edition, 8GB

Zgodovina sprememb…

Marksman ::

to je res, sam rabm še par drugih stvari.

urosz ::

sem našel neko kodo v arhivu, smo delali na vajah pri računalništvu lani
sicer je malo prirejena verzija fibonačija, upam da ti bo pomagalo
sicer ni rešeno rekurzivno, zato je koda malo daljša..

/*
Dano imamo zaporedje 1,5,6,11,17,28,45. Napišite program, ki izpiše n-ti elen tega zaporedja.
*/


public class Fib {

	public static void main (String[] args) {

			System.out.println(clen(6));

	}

	public static int clen(int n) {
		int prvo = 1, drugo = 5, vmesna = 0;
		if (n==1) {
			return prvo;
		} else {
			for (int i=1; i<=n; i++)
			{
				if (i==1 || i==2) continue;
				vmesna = drugo;
				drugo = prvo+drugo;
				prvo = vmesna;
			}
		}
		return drugo;
	}
}

Zgodovina sprememb…

  • spremenil: urosz ()

overlord_tm ::

to je res, sam rabm še par drugih stvari.


Kot recimo? Nimamo kristalne krogle da bi vedeli kaj vse rabis ... mogoce razlago rekurzije?

urosz ::

verjetno je rekurzija tista ja..
zato tudi moja koda ni najbolj primerna

Marksman ::

Napišite program, ki:

a) prebere celo število n in izpiše n-ti element Fibonaccijevega zaporedja

b) prebere še eno celo število m in izpiše koliko elementov Fibonaccijevega zaporedja je manjših od m.

c) prebere še tretje celo število k in izpiše vsoto vseh elementov Fibonaccijevega zaporedja, ki so manjši od m in hkrati deljivi s k.

d) Izpišite vse elemente Fibonnacijevega zaporedja, ki so manjši kot 1000000000 (ena milijarda) in so praštevila.

Nalogo izdelajte in oddajte na e-učilnico do ponedeljka 9. 11. 2009 do 13:00. Nalogo morate nato še zagovarjati na vajah 9. 11. kjer boste dobili še male naloge, s katerimi bomo preverili vaše delo.

Primer:
Vpisi celo stevilo n: 9
Fibonaccijevo stevilo 9 je 34
Vpisi celo stevilo m: 100
Fibonaccijevih stevil manjsih kot 100 je 11
Vpisi stevilo k: 2
Vsota Fib. stevil manjsih od 100, ki so deljiva z 2 je 44
Fibonaccijeva stevila, ki so manjsa od 1000000000 in hkrati prastevila so: 2 3 5 13 89 . . .

Tole rabm. Zelo bi bil hvaležn če kdo spiše ta programček in zraven poda //komentarje. Načeloma razumem, kaj je treba narest, vendar ne znam izpeljat.

pivo v dobrem

Zgodovina sprememb…

  • spremenil: Marksman ()

Nuke_H2 ::

import javax.swing.*;
public class Fibonacci {
    public static void preberiN(int n){
        System.out.println("Vpisi celo stevilo N: "+n);
        int a=0, b=1, fib=0;                                                    //a prvo stevilo, b drugo stevilo fib. zaporedja
        if(n>1){                                                                //ce je iskano fib. vecje od 1
            for(int i=0;i<n;i++){                                               //sestevamo toliko casa dokler ne dosežemo n
                a=b;                                                            //a-ju dodelimo vrednost b
                b=fib;                                                          //b-ju dodelimo vrednost vrednost fibonaccijevega st.
                fib=a+b;                                                        //fibonaccijevo stevilo je sestevek prejšnjiv dveh
            }
        }
        System.out.println("Fibonaccijevo stevilo "+n+" je "+fib);
    }
    public static void preberiM(int m){
        //podobno kot v prejšnji nalogi
        System.out.println("Vpisi celo stevilo M: "+m);
        int a=0, b=1, fib=0, stevec=0;
        while(fib<m){                                                           //dokler je fib. stevilo manjši od meje
            a=b;
            b=fib;
            fib=a+b;
            stevec++;                                                           //stejemo ta stevila
        }
        System.out.println("Fibonaccijevih stevil manjsih kot "+m+" je "+stevec);
    }
    public static void preberiK(int k,int m){
        //podobno kot v prejšnji nalogi
        System.out.println("Vpisi celo stevilo K: "+k);
        int a=0, b=1, fib=0, vsota=0;
        while(fib<m){                                                           //dokler fib. stevilo manjše od meje
            a=b;
            b=fib;
            fib=a+b;
            if(fib%k==0){                                                       //če je ostanke pri deljenju s k 0
                vsota=vsota+fib;                                                //seštejmeo števila ki so deljiva s k
            }
        }
        System.out.println("Vsota Fibonaccijevih stevil manjsih od "+m+" ki so deljiva z "+k+" je "+vsota);
    }
    public static void praStevila(){
        System.out.println("Fibonaccijeva stevila, ki so manjsa od 1000000000 in hkrati prastevila so: ");
        int a=0, b=1, fib=0, pra=0;
        while(fib<1000000000){                                                  //fib. stevilo manjši od miljarde
            a=b;
            b=fib;
            fib=a+b;
            for(int i=1;i<=fib;i++){                                            //če je praštevilo... (i so vsa stevila do fib. stevila)
                if (fib%i==0){                                                  //če i deli fib. število
                    pra++;                                                      //povečamo števec deliteljev
                }
            }
            if(pra==2){                                                         //če je števec deliteljev enak 2 (delijiv z 1 in s samim seboj) je prastevilo
                System.out.print(fib+" ");
            }
            pra=0;
        }
    }

    public static void main(String s[]){
        String sN=JOptionPane.showInputDialog("Vpisi stevilo N: ");
        int n=(int)(Integer.valueOf(sN));
        preberiN(n);
        sN=JOptionPane.showInputDialog("Vpisi stevilo M: ");
        int m=(int)(Integer.valueOf(sN));
        preberiM(m);
        sN=JOptionPane.showInputDialog("Vpisi stevilo K: ");
        int k=(int)(Integer.valueOf(sN));
        preberiK(k,m);
        praStevila();
    }
}

No evo sm si jst uzel mal časa pa sm ti na hitr spisu tole, če slučajno kaj ne dela, si pa malo po netu poglej
Podpiram lenobo =)

Lp Nuke_H2

Zgodovina sprememb…

  • spremenil: Nuke_H2 ()

Marksman ::

Ej res najlepša hvala upam, da ti ne bom preveč zamoriu če te prosm z zamenjavo jawax.swing z java.Scanner, ker če samo to zamenjam scaner ne prepozna JOptionPane...

urosz ::

importaj java.util.Scanner, ustvari objekt:
Scanner sc = new Scanner(System.in);


pol pa namesto
sN=JOptionPane.showInputDialog("Vpisi stevilo M: ");
int n=(int)(Integer.valueOf(sN));

napiši
int n = sc.nextInt();


in za ostale primere na enak način

iggy ::

Pa ti veš da boš pogrnil na izpitu? :)
Hey, you're fat!

xsenon ::

predlagam ti, da uporabiš en debuger, ki ti sproti izpisuje vrednost spremenljivk, tako boš najlažje razumel približno delovanje programa, še boljše pa bo če boš ob pomoči tega progamam napisal svojega drugače boš imel kar težave na zagovoru da o izpitu ne govorimo. :)
etpot - Exploit The Power Of Technology

Marksman ::

Pa ti veš da boš pogrnil na izpitu? :)


Če bom sam to pogrnu bom kr zadovoljen.

Drugače pa je moj namen, da se prek te kode naučim osnov. Ker to je šele prva vaja, tako da na izpit raje ne pomislm. Res hvala vsem za pomoč.

Nuke_H2 ::

Ti se kr uči =). Če pa še kej neboš razumu pa vpraši tle gor :).

Lp Nuke_H2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java

Oddelek: Programiranje
91270 (638) 123mg
»

Java metode;

Oddelek: Programiranje
354933 (4125) ragezor
»

Pomoč pri programiranju z javo

Oddelek: Programiranje
203542 (2469) milc
»

C++ naloge

Oddelek: Programiranje
163443 (2972) kitarist
»

java problem

Oddelek: Programiranje
91374 (1159) sverde21

Več podobnih tem