2014-02-11 48 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--; 
     } 
    } 
}