黑马程序员技术交流社区
标题:
幸运数问题
[打印本页]
作者:
尹兆国
时间:
2014-6-13 02:01
标题:
幸运数问题
本帖最后由 尹兆国 于 2014-6-15 14:57 编辑
class LuckNumber
{
public static void main(String[] args)
{
int[] arr = {1,2,3,4,5,6,7,8};
int pos = -1;
for(int x=0;x<arr.length-1; x++)
{
for(int y=0; y<3;y++)
{
pos++;
if(pos==arr.length)
pos=0;
while(arr[pos]==0)
{
pos++;
if(pos==arr.length)
pos=0;
}
}
arr[pos] = 0;
//System.out.println(arr[pos]);
}
for(int x=0; x<arr.length; x++)
{
if(arr[x]!=0)
{
System.out.println(arr[x]);
break;
}
}
}
}
复制代码
这段代码意思好像是将数组中的元素值改为
0
,但有一个没被修改,而这个便是那个幸运数。
问题是第一个大的for循环不懂,
麻烦懂的同志给个详细的注释,最好每行都有注释。
作者:
496080891
时间:
2014-6-13 13:26
Eclipse中有调试模式,可以自己在第13行pos++下断点,看pos的数值;
它是跳跃式更改数值元素;
作者:
pk49800
时间:
2014-6-13 14:24
class LuckNumber
{
public static void main(String[] args)
{
int[] arr = {1,2,3,4,5,6,7,8};
int pos = -1;
for(int x=0;x<arr.length-1; x++)
{
for(int y=0; y<3;y++)
{
pos++;
if(pos==arr.length)
pos=0;
while(arr[pos]==0)
{
pos++;
if(pos==arr.length)
pos=0;
}
System.out.println("pos:"+pos+" "+arr[pos]);
}
System.out.println("将下标为"+pos+"置为0");
arr[pos] = 0;
}
for(int x=0; x<arr.length; x++)
{
if(arr[x]!=0)
{
System.out.println(arr[x]);
break;
}
}
}
}
复制代码
输出结果:
pos:0 1
pos:1 2
pos:2 3
将下标为2置为0
pos:3 4
pos:4 5
pos:5 6
将下标为5置为0
pos:6 7
pos:7 8
pos:0 1
将下标为0置为0
pos:1 2
pos:3 4
pos:4 5
将下标为4置为0
pos:6 7
pos:7 8
pos:1 2
将下标为1置为0
pos:3 4
pos:6 7
pos:7 8
将下标为7置为0
pos:3 4
pos:6 7
pos:3 4
将下标为3置为0
7
看这个结果很明显
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2