为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这个的运算结果总是只剩2个?求解答

#include <stdio.h>
int getPeachNumber(int n)
{
    int num;
    num=1;//定义所剩桃子数
    if(n==1)
    {
       return 0;//递归结束条件
    }
    else
    {
        num = (num++)*2;   //这里是不应该用递归呢?
        printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
        getPeachNumber(n-1);
    }
    return num;
}
int main()
{
    int num = getPeachNumber(10);
    printf("猴子第一天摘了:%d个桃子。\n", num);
    return 0;
}

正在回答

3 回答

#include <stdio.h>
int getPeach(int n,int num)
{
    if(n==0)
    {
       return num;//递归结束条件
    }
    else
    {
        num = (++num)*2;   //这里是不应该用递归呢?
        printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
        getPeach(n-1,num);
    }
    return num;
}
int main()
{
    int num = getPeach(9,1);
    printf("猴子第一天摘了:%d个桃子。\n", num);
    return 0;
}

0 回复 有任何疑惑可以回复我~
#1

慕仔必转计科

printf("猴子第一天摘了:%d个桃子。\n", num); 运行出来的结果是 猴子第一天摘了4个桃子 是错的
2019-07-18 回复 有任何疑惑可以回复我~

你刚开始定义了NUM=1所以当然结果都+1了嘛

0 回复 有任何疑惑可以回复我~

#include <stdio.h>
int getPeach(int n,int num)
{
   //定义所剩桃子数
    if(n==0)
    {
       return num;//递归结束条件
    }
    else
    {
        num = (++num)*2;   //这里是不应该用递归呢?
        printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
        getPeach(n-1,num);
    }
}
int main()
{
    int num = getPeach(9,1);
    printf("猴子第一天摘了:%d个桃子。\n", num);
    return 0;
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这个的运算结果总是只剩2个?求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信