1

私は以下の出力を印刷しようとしていて、かなり長い間立ち往生しています。私は試してみましたが、誰かが私にいくつかのヒントを教えてくれることを願っています。私は自分でそれを解決します。

メソッドを呼び出すことになっているので、printSquare(1, 5);印刷する必要があります

12345
23451
34512
45123
51234

これは私が出てきたものです。

public static void printSquare(int min,int max){
    for(int i=min;i<=max;i++){
        for(int x=min;x<=max;x++){
            System.out.print(x);
        }
        System.out.println();
    }
}
4

4 に答える 4

1
for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
        System.out.print (((i + j) % 5) + 1);
    System.out.println ();
}
于 2013-02-10T15:49:13.940 に答える
0

覚えておくべき一般的な擬似コードの設計は次のとおりです。

  • の境界で繰り返しmaxます。
    • 最初の番号セットを印刷します。
    • 配列の最大境界を反復処理します。
      • の余りmaxと現在の位置の値が0の場合、に設定されminます。
      • それ以外の場合は、現在の位置の値を1増やします。

これは、配列を含む大まかな実装です。

public void printRotatedNumbers(int[] array, int a, int b) {
    for(int i = 0; i < b; i++) {
        System.out.println(Arrays.toString(array));
        for(int j = 0; j < array.length; j++) {
            if(array[j] % b == 0) {
                array[j] = a;
            } else {
                ++array[j];
            }
        }
    }
}

とを使用した10個の整数要素の配列では、次のようにa = 1なりb = 10ます。

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
[3, 4, 5, 6, 7, 8, 9, 10, 1, 2]
[4, 5, 6, 7, 8, 9, 10, 1, 2, 3]
[5, 6, 7, 8, 9, 10, 1, 2, 3, 4]
[6, 7, 8, 9, 10, 1, 2, 3, 4, 5]
[7, 8, 9, 10, 1, 2, 3, 4, 5, 6]
[8, 9, 10, 1, 2, 3, 4, 5, 6, 7]
[9, 10, 1, 2, 3, 4, 5, 6, 7, 8]
[10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
于 2013-02-10T15:59:45.740 に答える
0
public static void print(int min, int max) {
    for (int i = min; i <= max; i++) {
        int val = i;
        do {
            System.out.print(val);
            if (val == max) {
                val = min;
            } else {
                val++;
            }
        } while (val != i);
        System.out.println();
    }
}
于 2013-02-10T16:04:37.733 に答える
0

次のコードを試してみてください。

public static void printSquare(int min,int max){
  for(int i=min;i<=max;i++){
      int iVal=i;
    for(int x=min;x<=max;x++){

      if(iVal>max){
        System.out.print(iVal-(max-min+1));
      }else{
        System.out.print(iVal);
      }
      iVal++;
    }
    System.out.println(" ");
  }
}
于 2013-02-10T15:47:57.843 に答える