ahoj vsem,
mam do skoly udelat nejaky jednoduchy program na pocitacni pseudonahodnych cisel.
udelal jsem metodu int pseudo ve ktere se ma generovat nasledujici clen posloupnosti.
Vsechno mi doposud fungovalo, ale musim udelat jeste podminku, kdyz se vygeneruje stejne cislo, ktere uz se v posloupnosti
vyskytuje, tak se ma generovani ukoncit a vypsat posloupnost.
Potreboval bych jeste vyresit problem clenu poslouponosti (pole) ktere se odviji od poctu generovanych clenu. Mam tam napevno danou hodnotu 10 a nyni kdyz spustim program tak to vypise chybu ArrayIndexOutOfBoundsException.. Jak tedy pocet
muzu urcit podle poctu clenu generovanych cisel?
napadlo me pouzit nejak misto cyklu for cyklus while..ale nevim jak presne :(
poradite nekdo?
diky
import java.util.*;
import java.awt.*;
public class semi2 {
public static int pseudo (int n){
int suma = 0;
int nadruhou = n*n;
int vysledek = 0;
if (nadruhou < 1000) {
suma = nadruhou / 10;
vysledek = (suma+1);
return (vysledek);
}
else {
suma = nadruhou / 100;
vysledek = (suma+1);
return (vysledek);
}
}
static void razeniVkladanim(int[] pole) {
for (int k = 1; k < pole.length; k++) {
int pom = pole[k];
int i;
// posun od posledniho prvku
for (i = k - 1; i >= 0 && pole[i] > pom; i--) {
pole[i + 1] = pole[i];
}
pole[i + 1] = pom;
}
}
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Zadej cislo: ");
int n = sc.nextInt();
System.out.println ("---Vysledky---");
int x = 10;
int[] pole = new int[x];
pole [0] = n;
pole [1] = pseudo(n);
for (int i=2; i < pole.length; i++){
for (int j=0; j < pole.length; j++) {
if ( pole[i-2] == pole[j+1]){
break;
} else
pole [i] = pseudo(pole[i-1]);
}
}
System.out.println(Arrays.toString(pole));
razeniVkladanim(pole);
System.out.println(Arrays.toString(pole));
}
}