10.19 下午 猴子偷桃的迭代问题

发布于 2024-10-19  226 次阅读


一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数

如上,这个题目就是个傻逼,什么叫落地?这个就是说落地后将反弹多高(文意潜规则)

什么叫共经过多少米?这个就是说反弹时之前总共经过了多少米,不算落地后将反弹多高的高度


这个题主要是求总经过长度,你直接找sn求和通项公式就行了,其实就是第一次的M+2*( M/2+M/4+...+M/(2的n-1次方) )

double b = M * (3 - 4 / pow(2, N));

这是我的结果


猴子吃桃问题

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子

吃了一半,其实就是潜规则第一天肯定摘了偶数个桃子

先从数学上分析,设Xn就是第n天还剩多少个桃子

则Xn=1,要逆推第一天X1的值

有Xn=X(n-1)-[X(n-1)/2 +1 ]

最后得出X(n-1)=2*(Xn+1)

int main() {
int N = 0;
scanf("%d", &N);
int last = 1,first=0;
for (int i = 1; i < N; i++) {
first = 2 * (last +1);
last = first;
}
printf("%d", first);
return 0;
}

逆推就不要找通项公式了,数学分析下即可,可巧妙借用循环

届ける言葉を今は育ててる
最后更新于 2024-11-05