杭电acm2013问题,公式3*pow(2,n-1)+2是怎么来的?求细节
公式应该是3*pow(2,n-1)-2。
设A(n)为第n天准备吃时剩下的桃子数。
a(n)= 1;
A(n-1)=(A(n)+1)* 2 = 4
A(n-2)=(A(n-1)+1)* 2 = 10;
于是得到公式A(n-1)=(A(n)+1)* 2;
即A(n-2)+2 = 2 * (A(n)+2),即(A(n-2)+2)/(A(n)+2) = 2。
(A(n-1)+2) / (A(n)+2) = 2
(A(n-2)+2) / (A(n-1)+2) = 2
...
...
(A(2)+2) / (A(3)+2) = 2
(A(1)+2) / (A(2)+2) = 2
将以上公式相乘得到(a(1)+2)/(a(n)+2)= 2(n-1)。
简化就是a (1) = 3 * 2 (n-1)-2。
最后,附上我的代码:
# include & ltiostream & gt
使用命名空间std
int main()
{
int n;
while(~scanf("%d ",& ampn))
{
printf("%d\n ",(1 & lt;& lt(n-1))* 3-2);
}
返回0;
}
希望对你有帮助。