黑马程序员技术交流社区
标题:
代码运行不出结果。。愿意费脑细胞的帮我看看 万分感谢
[打印本页]
作者:
张甲甲
时间:
2013-5-23 00:38
标题:
代码运行不出结果。。愿意费脑细胞的帮我看看 万分感谢
本帖最后由 张甲甲 于 2013-5-24 13:28 编辑
我想做一个这样的题目:
500个人手拉手拉一圈,数数,数到3的人就去掉,知道最后只留一个人,问那个人是第几个人,输出位数????
一下是代码 编译没问题就是不出结果。。。
大神们帮着看看吧 让我这种菜鸟也进步进步。。。
public class MyTest {
public static void main (String args[]){
boolean a[]=new boolean[500];
for(int i=0;i<a.length;i++){
a
=true;
}
int number=a.length;
int index=0;
int count=0;
while(a.length>1){
if(a[index]==true){
count++;
if(count==3){
count=0;
a[index]=false;
number--;
}
}
}
index++;
if(index==a.length){
index=0;
}
for(int i=0;i<a.length;i++){
if(a
=true){
System.out.print("i :"+i);
}
}
}
}
作者:
年轻的棒棒
时间:
2013-5-23 08:00
你这代码还能编译通过,你a是一个boolean的数组,能a=true?
你既然已经定义了number=arr.length,就压迫使用number,而不是又去使用arr.lemgth
你的index++和之后的if语句写在了while的外面,就这么点小问题,修改代码如下:
public class MyTest {
public static void main(String args[]) {
boolean a[] = new boolean[500];
for (int i = 0; i < a.length; i++) {
a[i] = true;
}
int number = a.length;
int index = 0;
int count = 0;
while (number> 1) {
if (a[index] == true) {
count++;
if (count == 3) {
count = 0;
a[index] = false;
System.out.println(index+"号出局");
number--;
}
}
index++;
if (index == a.length) {
index = 0;
}
}
for (int i = 0; i <number; i++) {
if (a[i] = true) {
System.out.print("最终获胜的人" + (i+1));
}
}
}
}
作者:
袁梦希
时间:
2013-5-23 23:52
非常好继续努力
作者:
袁梦希
时间:
2013-5-23 23:53
如果帖子的问题已经解决,请把帖子的类型改为已解决,如果不知道咋改就看我的个性签名
作者:
张甲甲
时间:
2013-5-24 13:28
年轻的棒棒 发表于 2013-5-23 08:00
你这代码还能编译通过,你a是一个boolean的数组,能a=true?
你既然已经定义了number=arr.length,就压迫使 ...
谢谢指点。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2