如何递归填充数组

How to fill an array recursively

您好,我了解如何使用循环迭代填充数组。但是为了理解并缩小与复杂性之间的差距,我想知道如何递归地解决这个问题。

问题是让 'n' 成为数组 'nums' 的索引。 nums 会将所有以前的数字存储在它的数组中。例如,n=6; nums = [0=6],[1=5],[2=4],[3=3],[4=2],[5=1].

static void Main(string[] args)
{
  int n = 6;
  int[] nums = new int[n];

  for(int i = 0;i < nums.Length; i++)
  {
      Console.WriteLine(fillArray(nums, n)[i]); //expected output 6,5,4,3,2,1
  }
}
static int[] fillArray(int[] nums, n)
{
    for(int i = 0; i< nums.Length; i++)
    {
        nums[i] = n--;
    }
   return nums;
}

非常感谢,感谢大家的回复!

你可以试试这个:

    static void fillArray(int[] nums, int index, int n)
    {
        if(index == nums.Length)
        {
            return;
        }else 
        {
            nums[index] = n;
            fillArray(nums, index + 1, n - 1);
        }
    }

    static void Main(string[] args)
    {
        int n = 6;
        int[] nums = new int[n];
        fillArray(nums, 0, n);

        for(int i = 0;i < nums.Length; i++)
        {
            Console.WriteLine(nums[i]); //expected output 6,5,4,3,2,1
        }
    }