Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem #java #metoda #vystupjakopole #rozkladprvocinitele

Zadání: ctrlv.cz
Metoda:
Hlavicku nemuzu menit, metodu mam v principu hotovou, jen nevím jak vypsat/ulozit výstup jako pole (abych sním pak mohl pracovat v jiné metodě/abych splnil zadání)

//Metoda, která vrátí prvočíselný rozklad čísla
    public int[] prvociselnyRozklad(int cislo)
    {
        int pocet = 0;
        int prvocinitel = 2;
       
        while (prvocinitel <= cislo)  
        { 
            if (cislo%prvocinitel == 0) 
            { 
                cislo = cislo/prvocinitel;
                System.out.print(" " + prvocinitel+"k"); 
            }
            else
            {
                prvocinitel++; 
            }
                 
        }
        return new int[]{1,2,3}; //doplnte kod funkce a opravte navratovou hodnotu
    }  

Dík

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
chapu no, ono mi jde akorat o to, ze mimo ty metody atd, to nemuzu asi upravovat, takze si tam nemuz…
dsgdgdfg 29.12.2015 14:11
dsgdgdfg
Asi to nemůžeš upravovat? Bez toho to ale půjde dost špatně.
Wikan 29.12.2015 14:16
Wikan
no okey jebu na to a udelal jsem to tak jak rikas //Metoda, která vrátí prvočíselný rozklad čísla p…
dsgdgdfg 29.12.2015 14:45
dsgdgdfg
//Metoda, která vrátí prvočíselný rozklad čísla public int[] prvociselnyRozklad(int cislo) { int pr…
MaSo 29.12.2015 14:51
MaSo
to mi vytvoří pole, ve kterém jsou hodnoty např. 0,1,2,3,4,5,6,7 ale né hodnoty které tam mají být,…
dsgdgdfg 29.12.2015 15:04
dsgdgdfg
To vytvoří pole int z hodnot, ktere mas v tom ArrayListu. Co davas do toho listu, jsem uz nezkoumal.…
MaSo 29.12.2015 15:07
MaSo
no ty vstupní data ani ten kód nadtím co si upravoval jsem neměnil, předtím mi to prostě psalo správ…
dsgdgdfg 29.12.2015 15:16
dsgdgdfg
Ja teda nevim, co ti tam nejde, ale mne ten kod funguje: import java.util.ArrayList; import java.ut… poslední
MaSo 30.12.2015 10:23
MaSo

chapu no, ono mi jde akorat o to, ze mimo ty metody atd, to nemuzu asi upravovat, takze si tam nemuzu jen tak importovat tu tridu array a provadet na ni metody, protoze bych pak jine zadání mohl udelat snadne taky podle toho... takze nevím

no okey jebu na to a udelal jsem to tak jak rikas

//Metoda, která vrátí prvočíselný rozklad čísla
    public int[] prvociselnyRozklad(int cislo)
    {
        int prvocinitel = 2;
        ArrayList<Integer> list = new ArrayList<>();
       
        while (prvocinitel <= cislo)  //je-li prvocinitel mensi ci roven
        { 
            if (cislo%prvocinitel == 0) //je-li delitelne prvocinitelem
            { 
                cislo = cislo/prvocinitel; //vydelime a ulozime do cislo
               // System.out.print(" " + prvocinitel); //vypis prvocinitele
                list.add(prvocinitel);
            }
            else
            {
                prvocinitel++;  
            }
             
        }
         
	Integer[] array = {};
	array = list.toArray(array);
        for (int elem : array) {
	    System.out.print(elem+" ");
            
	}
        System.out.println();
        return new int[]{1,2,3}; //doplnte kod funkce a opravte navratovou hodnotu
    }

akorát mám furt stejnej ten řádek return, a nevim co tam mam zmenit? Když bych chtěl ted zavolat tuto metodu, metodou jinou a chtěl bych pracovat stím výstupním správným výstupním polem, tak mi to nepude nebo jo?
dík

    //Metoda, která vrátí prvočíselný rozklad čísla
    public int[] prvociselnyRozklad(int cislo)
    {
        int prvocinitel = 2;
        ArrayList<Integer> list = new ArrayList<>();

        while (prvocinitel <= cislo)  //je-li prvocinitel mensi ci roven
        {
            if (cislo%prvocinitel == 0) //je-li delitelne prvocinitelem
            {
                cislo = cislo/prvocinitel; //vydelime a ulozime do cislo
                // System.out.print(" " + prvocinitel); //vypis prvocinitele
                list.add(prvocinitel);
            }
            else
            {
                prvocinitel++;
            }

        }
        
        int[] ints = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            ints[i] = list.get(i);
        }
        return ints;
    }
}

Ja teda nevim, co ti tam nejde, ale mne ten kod funguje:

import java.util.ArrayList;
import java.util.Arrays;

public class Main {

    public static void main(String... args) {
        System.out.println(Arrays.toString(prvociselnyRozklad(20)));
    }

    //Metoda, která vrátí prvočíselný rozklad čísla
    public static int[] prvociselnyRozklad(int cislo)
    {
        int prvocinitel = 2;
        ArrayList<Integer> list = new ArrayList<Integer>();

        while (prvocinitel <= cislo)  //je-li prvocinitel mensi ci roven
        {
            if (cislo%prvocinitel == 0) //je-li delitelne prvocinitelem
            {
                cislo = cislo/prvocinitel; //vydelime a ulozime do cislo
                // System.out.print(" " + prvocinitel); //vypis prvocinitele
                list.add(prvocinitel);
            }
            else
            {
                prvocinitel++;
            }

        }

        int[] ints = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            ints[i] = list.get(i);
        }

        return ints;
    }
}

vypisuje spravne 2, 2, 5...

Zpět do poradny Odpovědět na původní otázku Nahoru