注册 登录
编程论坛 C语言论坛

求大佬解答

陈锦鹏 发布于 2019-11-30 10:42, 1523 次点击
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int sum = digui(1);
   printf("第一天摘的桃子%d",sum);
    return 0;
}
int digui(int n)
{
    int sum;
    if(n==10)
    {
       return 1;
    }
    else
    {
      sum = (digui(n+1)+1)*2;
      printf("第%d天还剩%d个桃子\n",n,sum);
    }
     return sum;


}
 sum = (digui(n+1)+1这个加一请问是有什么作用是加一天还是????)*2; 求解答
4 回复
#2
纯蓝之刃2019-11-30 15:23
你不要只贴程序啊,还得把题目贴出来,要不怎么知道你的代码符不符合题意,代码中各个变量都代表的是什么。
而且你这个结贴率真的挺感人的,估计都没人敢回复吧!!!
#3
陈锦鹏2019-11-30 22:21
回复 2楼 纯蓝之刃
不好意思哈,猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。这个是题目
#4
rjsp2019-12-01 08:58
回复 3楼 陈锦鹏
第一个加1是加一天,第二个加1是加一个桃子

直接用数学手段解得 y = 3*2^(n-1) - 2
换成C语言就是  printf( "%u\n", 3u<<(10-1)-2 );
#5
自学的数学2019-12-01 15:50
程序代码:
#include<stdio.h>
main(){
int i,s=1;
for(i=0;i<9;i++)//因为到第十天还剩一个,所以循环9次
{
    s=(s+1)*2;//倒序求出每天的数量
}
printf("The first day:%d\n",s);//输出结果
}
1