有个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又2只。这样他经过了n个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?
Input
输入有多组数据,每组数据占一行,包含唯一的正整数n.(0 < n <= 60).
Output
每组测试实例,输出一行,第一行输出出发时共赶了多少只鸭子。
#include<iostream>
using namespace std;long long f(int n)
{
if(n==0)
return 2;
else
{
long long d;
d=(f(n-1)+2)*2;
return d;
}
}
int main()
{
int m;
while(cin>>m)
{
cout<<f(m)<<endl;
}
return 0;
}
使用数组
#include<iostream>
using namespace std;
const int n=60;
long long num[n];
int main()
{
num[0]=2;
int m;
for(int i=1;i<n;i++)
num[i]=(num[i-1]+2)*2;
while(cin>>m)
{
cout<<num[m]<<endl;
}
return 0;
}