/**/
#include<stdio.h>
int main()
{
int i,n;
long long a[35];
while(~scanf("%d",&n)&&n)
{
a[n]=1;
for(i=n-1;i>=1;i--)
{
a[i]=2*(a[i+1]+1);
}
printf("%lld\n",a[1]);
}
return 0;
}
当不知道开头条件而知道结束条件时,可以用从后往前推的方法求解,效率要高
a[2]=1/2(a[1])-1;第二天开始时还有的(第一天吃完时剩的)
a[3]=1/2(a[2])-1;
.......
a[n]=1;
a[i]=1/2(a[i-1])-1;
所以a[i-1]=2*(a[i]+1);
蟠桃会(递推逆序求解)
最新推荐文章于 2024-01-20 14:56:34 发布