为什么以下算法会打印随机字符串而不是数组?

时间:2016-07-13 21:33:52

标签: java algorithm

这是我的作业:

  

编写一个执行以下操作的程序:它返回一个长度为n的整数数组arr2,其前k个元素与arr的前k个元素相同,其余元素由前k个元素的重复块组成。您可以假设数组arr至少有k个元素。如果k或n不为正,则该函数应返回null。

     

示例:

       fill({1,2,3,5, 9, 12,2,
        1},
        3, 10) returns {1,2,3,1,2,3,1,2,3,1}.
        fill({4, 2, 3,
        12}, 1, 5) returns {4, 4, 4, 4, 4}.
        fill({2, 6, 9, 0, 3},
        0, 4) returns null.

这是我的代码:

public static void main (String[] args){
    int [] result = fill(new int[]{1, 2, 3, 5, 9, 12, 2, 1}, 3, 10);
    System.out.println(result);
}

    public static int[] fill(int[] arr, int k, int n){
        int[] arr2 = new int[n];
        int cnt = 0;
        if (k > 0 && n > 0)
        {
            while (cnt != n)
            {

                for (int j = 0; j < k; j++)
                {
                    if (cnt != n)
                    {
                        arr2[cnt] = arr[j];
                        cnt++;
                    }
                    else
                        break;
                }
            }
        }
        else
            return null;

        return arr2;
    }

0 个答案:

没有答案