【发布时间】:2018-07-17 02:56:57
【问题描述】:
#include <cstdlib>
#include <iostream>
using namespace std;
int myFunction(int n)
{
int x;
if (n==1 || n==2)
x = 1;
else
x = myFunction(n-2) + myFunction(n-1);
return x;
}
int main(int argc, char *argv[])
{
int n,a;
n = 7;
a = myFunction(n);
cout << "x is: " << a;
system("PAUSE");
return EXIT_SUCCESS;
}
对此的输出是“x is: 13”。 当我做 n = 7 时,我如何得到 x = 13? 该函数似乎重复了一些次数,直到 x=1。
【问题讨论】:
-
调试器、一些内联打印语句或函数运行的纸上简单的痕迹可以告诉你
-
递归(n):见递归
-
@FredLarson,终止条件在哪里? :) :)
-
@RSahu:我想你可以在弄清楚后终止。 8v)
-
也许在 F# 中看到问题会有所帮助:stackoverflow.com/questions/2845744/…
标签: c++