NEFU563 鸭子知多少?【递归】

来源:互联网 发布:淘宝商城黄金首饰 编辑:程序博客网 时间:2024/06/05 20:36

题目链接:

http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=563


题目大意:
有个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又2只。这样经过了N个村子

剩下2只鸭子,问:他出发时所赶的鸭子共有多少只。


思路:

路过第i个村子剩的鸭子数 = 第i+1天刚开始赶的鸭子数 = (第i+1个村子卖完剩的鸭子数+2)*2。用

dfs(i)表示第i天剩的鸭子数,那么dfs(i) = (dfs(i+1)+2)*2。从第1天开始卖,则答案就是第0天还未

卖的时候剩的鸭子数,即dfs(0)。


AC代码:

#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;long long N;long long dfs(long long i){if(i == N)return 2;long long d;return d = (dfs(i+1)+2)*2;}int main(){while(~scanf("%d",&N)){printf("%lld\n",dfs(0));}return 0;}  


0 0
原创粉丝点击