典北 2022-10-28 20:01 采纳率: 50%
浏览 22
已结题

刚开始学习c语言不久,布置的问题不太懂

img


请问这个图的程序应该怎么写啊,我不太懂。希望可以有人能够帮帮我!

  • 写回答

3条回答 默认 最新

  • 春休夏末 2022-10-28 20:49
    关注

    猴子吃桃 根据题目第十天剩余1个桃子,那么就可以设第九天的公式 x - x/2 - 1 = 1

    如果是没有学过递归的话 可以用循环遍历出来结果

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        float tmp = 0;
        for (int i = 1; i < 10000; ++i) {
            tmp = i;
            for (int j = 0; j < 10-1; ++j) {
                tmp = tmp - tmp / 2.0 - 1;
            }
            if (tmp == 1) {
                printf("第一天一共%d个桃子\n", i);
                break;
            }
        }
        return 0;
    }
    
    

    结果如下:

    img

    如果学过函数和递归的话 可以用递归做出来
    把公式进行变换
    设后一天剩余的桃子数为a
    x - x/2 - 1 = a
    x - 0.5x = a + 1
    0.5x = a+1
    x = (a+1)/ 0.5
    x = (a+1)*2
    得出每天的桃子数是后一天剩余的桃子数量+1x2
    第10天是1 就是退出递归的条件
    代码如下

    
    #include <stdio.h>
    #include <stdlib.h>
    
    int func(int n)
    {
        if (n == 1)
            return 1;
        return 2 * (func(--n) + 1);
    }
    
    int main(void)
    {
        int count = func(10);
        printf("第一天一共%d个桃子\n", count);
        return 0;
    }
    

    结果如下:

    img

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

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图