新手问题,报错求解!
小程序是让一群孩子手拉手围成圈,依次报数,数到三的孩子离开,下个孩子又从1开始报。不断循环。直到剩下最后一个孩子,输出他的ID号。建了两个类:kid、 kidcircle,NEW出一个500人的圈子。但是在CMD中编译执行,总是报错Exception in thread "main"
java.lang.NullPointerException,求解求解...
public class Count3quit
{
public static void main(String[] args){
kidcircle kc=new kidcircle(500);
int countnum=0;
kid k=kc.first;
while(kc.count>1){
countnum++;
if(countnum==3){
countnum=0;
kc.delete(k);
}
k=k.right;
}
System.out.println(kc.first.id);
}
}
class kid
{
int id;
kid left,right;
}
class kidcircle
{
int count=0;
kid first,last;
kidcircle(int n){
}
public void add(){
kid k=new kid();
k.id=count;
if(count<=0){
first=k;
last=k;
k.left=k.right=k;
}
else{
last.right=k;
k.left=last;
k.right=first;
first.left=k;
last=k;
}
count++;
}
public void delete(kid k){
if(count<=0){
return;
}else if(count==1){first=last=null;}
else {
k.left.right=k.right;
k.right.left=k.left;
if(k==first){
first=k.right;
}
else if(k==last){
last=k.left;
}
}
count--;
}
}
------最佳解决方案--------------------kidcircle(int n){
}
你在构造器里什么都没干啊? 你总得先构造一个环吧。。
------其他解决方案--------------------大意了- -谢谢!