-1

v の要素のすべてのペアワイズ積からなる 2D 配列を返すメソッドstatic int [][] pr (int [] v)を記述します。たとえば、a = {{2, 3, 1}このメソッドは 2D 配列 を返しますb = {{4, 6, 2}, {6, 9, 3}, {2, 3, 1}}。注意: これは、ソフトウェアとプログラミング 1 モジュールから取られた 2010 試験問題です。

public class ETenBTwoD
{
    public static int [] [] pr (int [] v)
    {
        int [] a = {2, 3, 1};
        int [][] b = {{0, 0, 0},{0, 0, 0}, {0, 0, 0}};
        for (int i = 0; i<a.length; i++)
        {
            a[i] = a[i] * a[i];
        }
        return a;
    }
}

これを行う方法がわかりません。助けていただければ幸いです。ありがとう

4

1 に答える 1

1

重要なのは、ネストされたループを使用することです。ご覧のとおり、v[i] は最初の数値 (最初のループで選択) を取り、それを v (パラメーター配列) のすべての数値で乗算します。これは、j が v の全長をインクリメントする必要があるためです。 2 番目の番号で、2 番目のループで再び実行されます。b[i][j] の i は、ペアワイズ積を計算している現在の数を表します。

public static void main(String[] args){
    int[] v = {5,4,3,2,1};
    pr(v);}
    public static int [] [] pr (int [] v)
    {
        int [][] b =new int[v.length][v.length] ;
        for (int i = 0; i<v.length; i++)
        {
            for(int j=0; j<v.length;j++){
                b[i][j] = v[i] * v[j];
            }
        }

        System.out.println(b[0][0]+" "+b[0][1]+" "+b[0][2]);
        System.out.println(b[1][0]+" "+b[1][1]+" "+b[1][2]);
        System.out.println(b[2][0]+" "+b[2][1]+" "+b[2][2]);
        return b;
    }
于 2012-04-11T21:49:46.937 に答える