南阳理工学院OJ_324_猴子吃桃问题
在小媛师姐的“继续”施压之下~我终于花了几十分钟把公式推导出来了,这感觉不是一般爽
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)
逆推法:
第M天吃完桃子后就剩下1个桃子了,猴子吃了3个:Sum_n等于第n天总的桃子数,eat_n等于第n天吃了的桃子数,res_n等于第n天剩下的桃子数
(Sum_n+2)/2=eat_n;
Sum_(n-1)=res_n=(Sum_n-2)/2
((Sum_n-2)/2+2)/2=eat_(n-1)
(Sum_n+2)/4=eat_(n-1)
eat_n=2*eat_(n-1)
Sum_n=eat_n*2-2
#include<stdio.h> int main() { int n,m; scanf("%d",&n); while(n--) { scanf("%d",&m); printf("%d\n",(3<<m)-2);//3是第m天吃掉的桃子数 } return 0; }