今天在教室里得到了老大的考验,他出了一个歪题给我了,我当即会心一笑,问老大能用二维数组做吗,他果断说不行。
 想破了脑袋也搞不定它,
题目是:用一维数组打印出以下内容1234
2341
3412
4123我只知道规律是1234的接下去,但是输出完全不行。。有没人给点灵感。。  学习下。

解决方案 »

  1.   

    是C ? 还是 C# 还是 JAVA????。。
      

  2.   

    明显的java题目饿,在jaava专区发的嘛
      

  3.   

    public static void main(String[] args) {
    int[] arr = {1,2,3,4};
    int index = 0;
    for(int i=0;i<4;i++)
    {
    int arrIndex = index%4;
    for(int j=0;j<4;j++)
    {
    System.out.print(arr[arrIndex]);
    arrIndex += 1;
    arrIndex = arrIndex%4;
    }
    System.out.println();
    index += 1;
    }
    }
    输出结果和那一样,不知道是不是lz想要的。
      

  4.   

        int[] data = { 1, 2 ,3 ,4};
        
        for(int i = 4; i < 8; i++){
            for(int j = i ; j < i+4;j++){
            System.out.print(data[j%4]);
            }
            System.out.println();
        }
    让我想起循环数组实现队列了
      

  5.   


    int array[4] = {1,2,3,4};
    int i, j, k;
    for (i = 0; i < 4; i++)
    {
       for(j = i, k = 0;k < 4;k++, j = (++j)%4)
       {
           printf("%d",array[j]);
        }
       printf("\n");
    }
    没有验证过,你试一下
      

  6.   

        int num[] = {1, 2, 3, 4};
        for(int i = 0; i < 16; i++) {
          System.out.print(num[(i + i / 4) % 4]);
          if((i + 1) % 4 == 0)System.out.println();
        }
      

  7.   

    public static void main(String[] args) {   
    String[] sa = {"1","2","3","4"};
    for (int i = 0;i < sa.length;i++){
    for (int j = i;j < i + sa.length;j++){
    System.out.print(sa[j%4]);
    }
    System.out.print("\n");
    }
        }
      

  8.   

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] str = new int[]{1,2,3,4};
    for(int i=0;i<str.length;i++){
    for(int j=0;j<str.length;j++){
    System.out.print(str[(i+j)%str.length]);
    }
    System.out.println();
    }
    }