• 締切済み

配列の使い方がわかりません

n=1~20 s=n(n+1)(2n+1)(3n^2+3n-1)/30 のsの結果を数表にする問題で、 n  s    n   s   1  _   11 _ 2  _  12 _ ・      ・ ・      ・ ・      ・ 10 _  20  _ というような表示をしたくて、配列を用いてしてるんですが、うまくいきません。どなたか、教えてください。 public class suuhyou{ public static void main(String[] args){ int a=0,b=0,c=0,d=0,s=0; int[] x = new int[50]; for(int n=1;n<=50;n++){ a = n; b = n + 1; c = 2 * n + 1; d = 3 * n * n + 3 * n - 1; s = a * b * c * d / 30; int x[n] = s; } for(int k=1;k<=10;k++){ System.out.print ( k + ":" + x[k] +","); System.out.print ((k+10) + ":" + x[k+10]+","); System.out.print ((k+20) + ":" + x[k+20]+","); System.out.print ((k+30) + ":" + x[k+30]+","); System.out.println((k+40) + ":" + x[k+40]); } } } 自分でやっていたら、最後はこんな風にだんだんめちゃくちゃになってしまいました。このときはnが50まででやってます。お願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>int[] x = new int[50]; new int[50] の時x[0]~x[49]の配列が確保されます。 >int x[n] = s; ここでは、int はいりません。 x[n-1] = s; でよいです。(n:1~50 だから) 同じように、 x[k] は、x[k-1] x[k+10] は、x[k-1+10] 以下同じ

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

#1です。 SS="   "+SS //空白+8 は" "の間のスペース(半角空白)を8個にするという 意味です。 コピペではうまく出来ないようです。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

コレでどうですか。 public class suuhyou{ public static void main(String[] args){ int a=0,b=0,c=0,d=0,s=0; String KK=""; String SS=""; String[] x = new String[51]; for(int n=1;n<=50;n++){ a = n; b = n + 1; c = 2 * n + 1; d = 3 * n * n + 3 * n - 1; s = a * b * c * d / 30; SS=Integer.toString(s); if(SS.length()==1){SS=" "+SS;} //空白+8 else if(SS.length()==2){SS=" "+SS;} //空白+7 else if(SS.length()==3){SS=" "+SS;} //空白+6 else if(SS.length()==4){SS=" "+SS;} //空白+5 else if(SS.length()==5){SS=" "+SS;} //空白+4 else if(SS.length()==6){SS=" "+SS;} //空白+3 else if(SS.length()==7){SS=" "+SS;} //空白+2 else{SS=" "+SS;} x[n] = SS; } for(int k=1;k<=10;k++){ if(k>0 && k<10){ KK=" "+Integer.toString(k); System.out.print ( KK + ":" + x[k] + ","); } else {System.out.print ( k + ":" + x[k] +","); } System.out.print ((k+10) + ":" + x[k+10]+","); System.out.print ((k+20) + ":" + x[k+20]+","); System.out.print ((k+30) + ":" + x[k+30]+","); System.out.println ((k+40) + ":" + x[k+40]+","); } } }

参考URL:
http://www.javaroad.jp/java_number2.htm

関連するQ&A

専門家に質問してみよう