如果函数仅依赖一个参数,如何递归执行

时间:2019-05-10 08:41:51

标签: recursion math arguments min

我需要进行递归操作,但问题是函数仅取决于一个参数,内部函数取决于两个参数(k和n),如果仅返回一个值,该如何查找最小值?

函数是:

[]

我已经尝试过随机生成k,但我认为这并不是一个好主意。

F1(int n) {
  Random random = new Random();
  int k = random.Next(1,10);
  if (1 <= k && k <= n){
    return Math.Min(F1(k - 1) + F1(n - k) + n);
  } else {
    return 0;
  }
}

1 个答案:

答案 0 :(得分:1)

您需要循环遍历范围1..n中的所有k个值。像这样:

F1(int n) {
   if (n == 0) 
      return ????  what is starting value?
   minn = F1(0) + F1(n - 1) + n
   for (int k = 2; k <= n; k++)
     minn =  Math.Min(minn, F1(k - 1) + F1(n - k) + n);
   return minn;
}