f(n)=f(n-1)-f(n-1)/2-1
==>f(n)=f(n-1)/2-1
==>f(n-1)=(f(n)+1)*2
程序如下:n表示第几天剩余一个桃子,如你的题中是10
#include<iostream>
int main()
{
int n,x
while(scanf("%d",&n))
{
x=1//初始化,表最终剩余量
n--//如果是第n天剩余1个,则只需递推n-1次
while(n--)
x=(x+1)*2
printf("%d\n",x)
}
return 0
}
希望对你有所帮助
public class Monkey{
public static void main(String[] args)
{
int sum=0,remain=1
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9day>=1day--)
{
sum=(remain+1)*2
remain=sum
System.out.println("第"+day+"天还剩"+remain+"个桃子")
}
System.out.println(sum)
}
}