You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
969 B

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int n;
/**
思路分析:
1、比如第10天桃子数量为1我们记为s10=1.
2、那么我们可以考虑s9是多少
3、第9天时吃掉了s9的一半再加1个然后变成的s10.就是 吃掉了s9/2+1剩下: s9-s9/2-1=s9/2-1=s10
4、整理得到s9=2s10+2
5、通项公式为 Si=2*S(i+1)+2
6、还知道Sn=1
*/
/**
* 递归函数的定义及参数理解是最重要的!
* @param n 第几天
* @return x天剩余多少桃子
*/
int dfs(int x) {
if (x == n) return 1;
return 2 * dfs(x + 1) + 2;
}
int main() {
cin >> n;
//方法1逆推
LL ans = 1; //最后一天剩下一个
for (int i = n - 1; i >= 1; i--) ans = ans * 2 + 2;
cout << ans << endl;
//方法2递归法 顺推
cout << dfs(1) << endl;
//**不管是怎么推,都是要整理出通项公式**
return 0;
}