发布一个关于for循环的题目,算法第四版1.1.12循环自己扩展

 原题目不用说了,答案就是最后一句for循环,结果为0 1 2 3 4 5 6 7 8 9

但是只是前两句会输出什么呢

  int []a = new int[10];
        for(int i = 0; i < 10; ++i)
            a[i] = 9-i;
         for (int i = 0; i < 10 ;++i) {
             a[i] = a[a[i]];
             System.out.println(a[i]);
         }

先告诉你结果,

 我一开始笔算的是

a0= 9   a0=a[a[0]]=a[9]=0 

a1=8    a1=a[a[1]]=a8=1 

a2=7    a2=a[a[2]]=a7=2 

a3=6    a3=a[a[3]]=a6=3 

a4=5    a4=a[a[4]]=a5=4

a5=4    a5=a[a[5]]=a4=5

a6=3    a6=a[a[6]]=a3=6

a7=2    a7=a[a[7]]=a2=7

a8=1    a8=a[a[8]]=a1=8

a9=0    a9=a[a[9]]=a0=9

以上是我笔算的结果,认为也会输出0 1 2 3 4 5 6 7 8 9

但是但是but  and  but    你是不是也是这么认为的?这么认为的留下标记(可以点个赞hhhhhhhh),证明不是我一个人这么想。。。。。

看下面的也许你一下就懂了  


a0= 9    a0=a[a[0]]=a[9]=0    a0=a9

a1=8     a1=a[a[1]]=a8=1      a1=a8

a2=7     a2=a[a[2]]=a7=2      a2=a7

a3=6     a3=a[a[3]]=a6=3      a3=a6

a4=5     a4=a[a[4]]=a5=4      a4=a5


看这个,是因为前面循环的时候,  a【5】已经等于a【4】了所以接下来的你一定明白了

 如果看懂了,点个赞再走吧~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值