2016-07-07 1 views
0

こんにちは、それはダム質問かもしれませんが、私は立ち往生しています。 私はサイクリック数字のコードに取り組んでいます。完了後、配列のすべての整数を配置しますが、配列の最初に空のセルがいくつかあります。空のセルは、適切な量の要素を持つ別の配列に置かれなければなりません。だから、最初は0を取り除く方法。ここJavaは配列を別のものに入れます

は私の巡回数のコードである:

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int carry = 0; 

     int[] cyclic = new int[60]; 
     int lastDigit = input.nextInt(); 
     cyclic[cyclic.length - 1] = lastDigit; 



      for (int i = cyclic.length - 2; i >= 0; i--) { 

       cyclic[i] = lastDigit * cyclic[i + 1]; 
       cyclic[i] += carry; 
       if (cyclic[i] > 9) { 
        carry = cyclic[i]/10; 
        cyclic[i] %= 10; 
       } else 
        carry = 0; 
       if (cyclic[i]==1 & cyclic[i+1]== 0) 
        break; 
      } 

      for (int j = 0; j < cyclic.length; j++) 
       System.out.print(cyclic[j]); 
+0

'System.arraycopy'関数を見ましたか?私はあなたがそこでやろうとしていることを実行するのに役立つと思います。 – JRSofty

答えて

1

あなたはすなわち、その後58、次いで57等59から逆の順序で60個の要素[0〜59]のアレイを充填しています。

印刷中はインデックス0,1,2などから印刷しています。

これは、0,1,2からそれらを埋めるか、または59,58などからそれらを埋めて修正する必要があります。

あなたが言うときに0を得ている理由は

int[] cyclic = new int[60]; 

cyclicは60個のint型のためのメモリを持っているとしたとき0 プリミティブデータ型は0で初期化されていると、すべての60個の値は、現在初期化されていますメモリを割り当てます。 これが、「配列の先頭の空のセル」が印刷後に0になっている理由です。

+0

はい、ありがとうございますが、私の計算は逆の形で書かれているので、必要なものですが、最終的には0を取り除きたいと思います。 –

関連する問題