这是一个关于C语言的简单程序问题

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。
哪位大佬能用递归方法帮我写这个程序,万分感谢!

#include
using namespace std;
int fun(int n);//表示第n天吃之前原来有的数量
int main()
{
cout<<fun(1);
return 0;
}
int fun(int n)//表示第n天吃之前原来有的数量
{
if(n==10)
{
return 1;
}
else
{
return (fun(n+1)+1)*2;
}
}


int 桃子(1), 天(10);
do
{
桃子 += 1;
桃子 *= 2;
} while (--天 > 1);
std::cout << 桃子 << endl;
int 递归猴子吃桃(int 天数, int 数量)
{
if (--天数 < 1)return 数量;
++数量;
数量 *= 2;
递归猴子吃桃(天数, 数量);
}
你看看是否正确