Avatar
vasatom
Člen
Avatar
vasatom:

ahoj, pomohl by mi někdo prosím , jak s výpisem výsledku místo jenom čísla. Ve formátu variace = 6x5x4 =120 ?
Děkuji

static Scanner cti=new Scanner(System.in);
    public static void main(String[] args) {
        System.out.print("zadej n: ");
        int n=cti.nextInt();
        System.out.print("zadej k: ");
        int k=cti.nextInt();
        if(n<k)
            System.out.println("zadal jsi špatná čísla");
        else if (n<1)
            System.out.println("zadal jsi špatná čísla");
        else if (k<1)
            System.out.println("zadal jsi špatná čísla");
        else{
            int c=var(n);
            System.out.println(""+c);
            int d=var(k);
            int e=c/d;
            System.out.println("Výsledek variace je: "+e);
        }
    }
     public static int var(int a){
     if(a>1)return a*var(a-1);
        else return 1;
    }
}
Editováno 3.12.2015 12:06
 
Odpovědět 3.12.2015 12:06
Avatar
Ten Zdeněk :

Nejdříve si napiš stejnou rekurzivní funkci pro faktoriál, akorát s výstupem textového řetězce.
Pak od sebe můžes Strings jakoby odečítat pomocí vlastnosti lenght:
Svou funkcí si uložíš strings pro obě dvě čísla(např n=počet prvků, k= počet pozic) a pak pomocí funkce String.substrin­g(int beginIndex, int endIndex) na stringu n, pričemž index začátku bude 0 a index konce bude [délka n]-[délka k+1] (n.lenght - [k.lenght +1]), to "+1" tam je, protže chceme odstranit i přebytečný znak násobení.
Např.: n=5, k=3 : N="5x4x3x2x1" K="3x2x1" -> N.substring(0,9-[6+1] ) = N.substring(0,2) = "5x4".

 
Nahoru Odpovědět 3.12.2015 19:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.