【问题标题】:A recurrence relation for the number of asterisks in the function函数中星号数量的递归关系
【发布时间】:2019-01-31 16:49:59
【问题描述】:

以下函数打印的星号数量无法重复出现,n 至少为 2。

void Mystery(int n) {
   if (n >= 2) {
       print("**");
       n=n-1;
       Mystery(n);
       n=n-1
       Mystery(n);
       print("***");
   }
}

我尝试了 n=2 的情况,然后我得到 ** 接下来,对于 n=3。然后对于 n = 4。然后我尝试使用归纳法得到 n 的一般结果。但我无法达到任何递归关系。

【问题讨论】:

    标签: recurrence


    【解决方案1】:

    这里有几点需要考虑:

    • 如果 n = 0 或 n = 1,则不打印星号。否则,将打印五个星号,以及来自递归调用的星号。

    • 第一个递归调用是Mystery(n - 1),第二个是Mystery(n - 2)。

    【讨论】:

    • 所以,正确的递归关系是 T(n) = T(n-1) + T(n-2) +5 ?
    • 是的,看起来不错!只要确保包括适当的基本案例。 :-)
    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2019-09-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多