打印“旋转”数字

时间:2013-02-10 15:35:57

标签: java

我一直在尝试打印下面的输出,我被困了很长一段时间。我已经试过了,希望有人可以给我一些提示,我会自己解决。

我应该调用方法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 个答案:

答案 0 :(得分: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 ();
}

答案 1 :(得分: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(" ");
  }
}

答案 2 :(得分: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];
            }
        }
    }
}

在包含a = 1b = 10的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]

答案 3 :(得分: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();
    }
}