static int put(int i)
{
if(i < 1)
{
return 1;
}
else
{
return i * put(i - 1);
}
}请大侠们帮分析一下如果输入5运算步骤是什么样的,请说详细点行不.

解决方案 »

  1.   

    put(5)=5*put(4)
    put(4)=4*put(3)
    put(3)=3*put(2)
    put(2)=2*put(1)
    put(1)=1*put(0)
    put(0)=1明白没有!?
      

  2.   

    举个例子:输入3:调用put(3),return 3*put(2);
    调用put(2),return 2*put(1);
    调用put(1),return 1*put(0);
    调用put(0),return 1;也就是3*2*1*1最好改成这样:static int put(int i)
    {
    if(i = 1)
    {
    return 1;
    }
    else
    {
    return i * put(i - 1);
    }
    }
    看来楼主以前的数据结构没学好啊..
      

  3.   

    5 * put(5 - 1);
            |
        4 * put(4 - 1);
                |
            3 * put(3 - 1);
                    |
                2 * put(2 - 1);
                        |
                    1 * put(1 - 1);
                            |
                            1应该是 5*4*3*2*1*1
      

  4.   

    return i * put(i - 1);
    就是这句不明白啊....