数组的数组运算

时间:2014-02-11 01:53:25

标签: java

我想为此操作编写程序,

I / p:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

O / P:1,3,6,10,15

在采访中我问过这个问题,我是这样做的,

     class Num
     {
          public static void main(String args[])
          {
             int j=0,k=0,count=1;
             int a[]={1,2,3,4,5,6,7,8,9,10,11};
             for(int i=0;i<=(((a.length+2)/2)-k);i++)
             {
                 k++;
                 count++;
                 System.out.println(a[j]);
                 j+=count;
             }
          }
     }

它有效,但看起来有点乱,所以有任何系统的方式来做到这一点。以及进行此类操作的任何技巧。

2 个答案:

答案 0 :(得分:1)

这个怎么样?不那么凌乱。

 class Num
 {
      public static void main(String args[])
      {
         int input[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
         int step = 1;
         for(int i=0;i<input.length;i+=step)
         {
             System.out.println(input[i]);
             step++;
         }
      }
 }

答案 1 :(得分:0)

另一种方式。

class Num
 {
    int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

    int sum = 1, count = 0;
    System.out.println(sum);
    for(int i = 0; i < arr.length; i = count == 1 ? i : ++i) {
        int bitmask = arr[i]<<1;
        if (count==0) {
            System.out.println(sum+=bitmask); count++;
        }
        else {
            System.out.println(sum+=bitmask+1); count--;
        }
    }
 }