为什么在C#,我要用递归方法计算一个递归方法,其中:A1=1,A2=1,An=An-1 + An-2,
我写的函数方法如下:
static int GoldDivide (int n)
{
if (n == 1 || n == 2)
return 1;
else
for (int i = 0,temp = 0;i < n;i++)
{
return GoldDivide (n - 1) + GoldDivide (n - 2);
}
}
编译器会报错:Test.GoldDivide(int)” : 并非所有的代码路径都返回值
即递归调用失败,这是C#的限制吗?
我写的函数方法如下:
static int GoldDivide (int n)
{
if (n == 1 || n == 2)
return 1;
else
for (int i = 0,temp = 0;i < n;i++)
{
return GoldDivide (n - 1) + GoldDivide (n - 2);
}
}
编译器会报错:Test.GoldDivide(int)” : 并非所有的代码路径都返回值
即递归调用失败,这是C#的限制吗?
1。int i = 0,temp = 0;
2。i < n这里如果2是false会怎么样?另外这个递归也写错了static int GoldDivide (int n)
{
if (n == 1 || n == 2)
return 1;
else return GoldDivide (n - 1) + GoldDivide (n - 2); }
xvting的解法很正确,呵呵