2014-02-11 46 views
0

我想写一个这个操作的程序,数组的操作

我/ 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; 
      } 
      } 
    } 

它的工作原理,但它看起来有点混乱所以有什么系统的方式来做到这一点。以及做这种操作的任何窍门。

+4

也许我们应该将此发送给Code Review?由于OP已经声明了代码的作用,并且只希望代码被审查,所以Code Review似乎是提出这个问题的最佳地点。 –

+1

这是一个大大简化的请求。他们没有告诉你他们是否希望你找出选择这些值的公式是什么,或者他们将如何提供给你(string?array ?,其他?),或者实际上你是否应该被假设根本不用选择相关的或者只是输出他们要求的文字结果。就目前而言,编写评论是不可能的,因为我们不知道我们正在评论它。我们可以猜测,但我们不应该......如果这就是他们告诉你的所有事情,他们会因为不要求澄清而给你留下好印象。 – keshlam

+2

属于http://codereview.stackexchange.com/ –

回答

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++; 
     } 
     } 
} 
+0

是的,它的工作。 。谢谢你.. –

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--; 
     } 
    } 
}