为什么在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#的限制吗?

解决方案 »

  1.   

    第一次进入for循环按下面的步骤
    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);  }
      

  2.   

    else后面多行语句要跟"{" "}"拜托把基本的语法搞搞清楚.C#递归没有什么限制.我测试过非常好,完全正常
      

  3.   

    else后面没有多行语句啊。?
    xvting的解法很正确,呵呵
      

  4.   

    摆脱看清楚,else 后面仅包含一个for结构,那么else后面的{}是可以省略的,除非你没有学过基本语法
      

  5.   

    恩,我忘了是用递归了还用for循环,谢谢xvting!谢谢大家!