问题
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?
代码
#include<iostream>
using namespace std;
int main()
{
int sum=1,N,i;
cin>>N;
for(i=0; i<N-1; i++)
{
sum=3*(sum+1);
}
cout<<sum;
return 0;
}
解析:注意要从第一天开始算起的话,第二天的数量sum2=sum1/3-1,所以换算过来就是sum1=3*(sum2+1),推广到多天就是sum(n-1)=3*(sum(n)+1),由此可以用循环求出第一天的总数。