Strona 1 z 1

Java: silnia z rekurencją

: 10 cze 2011, 21:36
autor: xmonx
Witam serdecznie mam problem mianowicie chodzi mi o skrypt rekurencji, kompilację i samo otwarcie programu:

Kod źródłowy:

Kod: Zaznacz cały

import java.util.Scanner;

class Silnia {
   /*
    * Metoda oblicz rekursywnie silnie liczby n
    * @param int n Liczba dla ktorej zostanie obliczona silnia
    * @return int
    */
  public static int silnia(int n) {
     if (n == 1) {
        return 1;
     }
     return n * silnia(n-1);
   }

   /*
    * Metoda main pobiera z pierwszego argumentu wywolania konsolowego
    * liczbe dla ktorej obliczy silnie a nastepnie wypisz wynik na ekran
    * @param String args[]
    * @return void()
    */
  public static void main(String args[]) {
     int n;
     System.out.print("Proszę podać liczbę, dla której ma być obliczona silnia: ");
     Scanner in = new Scanner(System.in);
     n = in.nextInt();
     System.out.print("Twój wynik to: ");
     System.out.print(silnia(n));
    }
} 
po odpaleniu:

Kod: Zaznacz cały

$ java -classpath "." Silnia
błąd:

Kod: Zaznacz cały

Exception in thread "main" java.lang.NoClassDefFoundError: Silnia
Caused by: java.lang.ClassNotFoundException: Silnia
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Silnia. Program will exit.
Pomocy?? :cry:

Re: Java: silnia z rekurencją

: 10 cze 2011, 21:57
autor: vermer
Hmm tak z konsoli mi też nie chce się odpalić ale po wklejeniu i odpaleniu w NetBeansie działa więc jedyne co mi przychodzi na myśl to odpalaj w NetBeansie:)

Re: Java: silnia z rekurencją

: 10 cze 2011, 22:04
autor: xmonx
Wolałbym z konsoli odpalić jednak ;/

problem rozwiązany:
cd /ściezka/do/katalagou/z/plikiem
javac silnia.java
java -classpath "." Silnia

I działa ;]

To może teraz ma któs POMYSŁ jak napisać wersje bez rekurencji??

Re: Java: silnia z rekurencją

: 10 cze 2011, 23:03
autor: thalcave
Nie lubię javy więc napisze to ogólnie:
silnia=1
pętla i od 1 do n:
silnia = silnia * i

Re: Java: silnia z rekurencją

: 12 cze 2011, 15:12
autor: xfermi
Could not find the main class: Silnia. Program will exit.


pisze jak byk


zamiast class Silnia daj Main bo nie uzywasz namespaceów (tzw packages)

inaczej zapakuj to w package np ja.Silnia i pozniej w konsoli

java Silnia ja.Silnia

Re: Java: silnia z rekurencją

: 12 cze 2011, 15:55
autor: bigfun
@xfermi napisał 2 posty wyżej, że rozwiązał problem.

z drugiej strony do autora tematu - wrzuć "solved" do tytułu i zadaj drugie pytanie w oddzielnym temacie, żeby nie robić bałaganu. (szczególnie, że temat tego postu zawiera słowo kluczowe "rekurencja", a Twoje drugie pytanie jest o coś przeciwnego).