【题目来源】
https://www.luogu.com.cn/problem/P5743
【问题描述】
一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。第 n 天早上起来一看,只剩下 1 个桃子了。请问小猴买了几个桃子?
【输入格式】
输入一个正整数 n,表示天数。
【输出格式】
输出小猴买了多少个桃子。
【算法分析】
设表示第n天桃子的个数,则知
并可推出第n+1天桃子的个数:
但是上式中的除法会产生截断误差,故改为乘法的等价表示。
【算法代码】
#include <stdio.h>
#include <stdlib.h>
int peach(int n){
int cnt=1;
int i;
for(i=n-1;i>=1;i--){
cnt=(cnt+1)*2;
}
return cnt;
}
int main() {
int n;
scanf("%d",&n);
printf("%d",peach(n));
return 0;
}
/*
in:10
out:1534
*/