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

img


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

猴子吃桃 根据题目第十天剩余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

你这是哪个图呢,是猴子吃桃还是说的是打印*****

这是一个简单的数学运算题目吧
每天少一半加1
/2+1呗
从后往前推就是-1然后乘以2呗
循环10次就可以了
有用记得采纳呐