Diskuze: Výpočet faktoriálu
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Jen otázka : nevyjde výhodnější pouzit jednoduse toto :
public int faktorial(int n){
int vysledek = 1;
for(;n>1;n--){
vysledek *= n;
}
return vysledek;
}
Snad jsem se neprepsal
Nejspíš ano, jen jsem chtěl vyzkoušet rekurzi.
Ale spíš bych to řešil takto, pokud je to tedy správně, teprve začínám.
public int faktorial(int n, int i, int vysledek)
{
vysledek = 1;
for (i = 1; i <= n; i++)
vysledek *= i;
return vysledek;
}
K čemu tam jsou ty 2 zbytečné parametry ?
Asi kvůli tomuto
f.n = Integer.parseInt(sc.nextLine());
System.out.println("Faktoriál čísla je: " + f.vysledek);
Aspoň myslím, jak říkám, teprve začínám.
Jinak v té rekurzi to mám takto
public class Faktorial {
public long n;
public int i;
public long vysledek;
public long faktor()
{
vysledek = 1;
for(i = 2; i <= n; i++)
vysledek *= i;
return vysledek;
}
}
A v main toto
f.n = Long.parseLong(sc.nextLine());
System.out.printf("%s! je %s:\n ", f.n, f.faktor());
Pro pobavení jeden objektově zapsaný faktoriál:
public class Faktor {
private int n;
public static void main(String[] args) {
Faktor sedm = new Faktor(7);
System.out.println(sedm.faktorial());
}
Faktor(int n) {
this.n = n;
}
int faktorial() {
int vysledek = 1;
for (int i = 2; i <= n; i++) {
vysledek *= i;
}
return vysledek;
}
}
Zobrazeno 10 zpráv z 10.