[]
java ArrayIndexOutofBoundsException hatasi neden? :(
Josephus Problemi icin kod: public class Josephus {
public class Josephus {
public static class person {
person next;
private final int position;
private static int nextPosition = 0;
public person() {
position = nextPosition;
nextPosition++;
next = this;
}
public person insertNext(person p) {
p.next = next;
next = p;
return this;
}
public person removeNext() {
next = next.next;
return this;
}
public person next() {
return next;
}
public String toString() {
return Integer.toString(position);
}
}
public static void main(String[] args) {
int n = 8;
int m = 3;
int People = n;
int Step = m;
People = Integer.parseInt(args[0]);
Step = Integer.parseInt(args[1]);
person person = new person();
for (int i = 1; i < n; i++)
person = person.insertNext(new person()).next();
int tmp = 0;
while (person.next() != person) {
if (tmp == m - 1) {
System.out.print(person.next() + " ");
System.out.print(m);
person = person.removeNext();
tmp = 0;
} else {
person = person.next();
tmp++;
System.out.print(person + " ");
System.out.print(tmp);
}
}
System.out.println(person);
}
}
public class Josephus {
public static class person {
person next;
private final int position;
private static int nextPosition = 0;
public person() {
position = nextPosition;
nextPosition++;
next = this;
}
public person insertNext(person p) {
p.next = next;
next = p;
return this;
}
public person removeNext() {
next = next.next;
return this;
}
public person next() {
return next;
}
public String toString() {
return Integer.toString(position);
}
}
public static void main(String[] args) {
int n = 8;
int m = 3;
int People = n;
int Step = m;
People = Integer.parseInt(args[0]);
Step = Integer.parseInt(args[1]);
person person = new person();
for (int i = 1; i < n; i++)
person = person.insertNext(new person()).next();
int tmp = 0;
while (person.next() != person) {
if (tmp == m - 1) {
System.out.print(person.next() + " ");
System.out.print(m);
person = person.removeNext();
tmp = 0;
} else {
person = person.next();
tmp++;
System.out.print(person + " ");
System.out.print(tmp);
}
}
System.out.println(person);
}
}
array icin verilen index'de deger yoktur.
calistirmadim ama,
Step = Integer.parseInt(args[1]);
adimindaki (args[1]) arguman girilmemis olabilir.
calistirmadim ama,
Step = Integer.parseInt(args[1]);
adimindaki (args[1]) arguman girilmemis olabilir.
- ekyil (24.06.16 13:04:29)
bir array degerine gecersiz bir index ile erismeye calisiyorsun. benim ilk gözüme carpan yer:
People = Integer.parseInt(args[0]);
Step = Integer.parseInt(args[1]);
burada args arrayinin uzunlugunun 2 olduguna eminmisin. main methoda sadece 2 den az parametre gönderiyor olabilirsin. eger main methoduna en az iki parametre gönderilmesi zorunlu ise yukarida verdigim kisim öncesi if (args.length == 2) kontrolü yapmalisin.
People = Integer.parseInt(args[0]);
Step = Integer.parseInt(args[1]);
burada args arrayinin uzunlugunun 2 olduguna eminmisin. main methoda sadece 2 den az parametre gönderiyor olabilirsin. eger main methoduna en az iki parametre gönderilmesi zorunlu ise yukarida verdigim kisim öncesi if (args.length == 2) kontrolü yapmalisin.
- emrahday (24.06.16 13:06:35 ~ 13:08:29)
programa argüman verdin mi ? args[0] ve args[1] değerlerini koda arguman olarak vermen lazım.
stackoverflow.com
Anlamadığım n= 8 m=3 sonra neden arguman set ediyon ? Argumanlara ihtiyacın yoksa kaldır o satırları. Yok ihtiyacın varsa verdiğim linkte anlatıyor o şekilde ekle. Eclipse kullanmıyosan da kullandığın ide ye nasıl arguman ekleniyor google da bi aratıver.
stackoverflow.com
Anlamadığım n= 8 m=3 sonra neden arguman set ediyon ? Argumanlara ihtiyacın yoksa kaldır o satırları. Yok ihtiyacın varsa verdiğim linkte anlatıyor o şekilde ekle. Eclipse kullanmıyosan da kullandığın ide ye nasıl arguman ekleniyor google da bi aratıver.
- nuevo (24.06.16 13:06:36 ~ 13:06:52)
1