baby00qi 2017-03-17 06:22 采纳率: 50%
浏览 888
已采纳

C 递归问题,麻烦大神进来看看

 void dfs(int step,int n)
{
    if(step<0)
        return;
    if(step==0 && n%2==0){
        count++;
        return;
    }       

    for(int i=1;i<=2;i++){
        step-=i;           //
        dfs(step,++n); //为什么这样写不对呢?正确的应该写为dfs(step-i,n+1);
    }   
}
  • 写回答

3条回答 默认 最新

  • 关注

    step-=i;相当于step=step-i;
    这里你更改了step的值

    step-i
    这里将结果作为实参并不改变step的值,所以结果当然不一样。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。