牙科医院网站推广方案,上传文件生成链接下载,优秀网站psd,linux的wordpress渗透Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事#xff0c;你们一定都觉得这猴子太闹腾了#xff0c;其实你们是有所不知#xff1a;悟空是在研究一个数学问题#xff01; 什么问题#xff1f;他研究的问题是蟠桃一共有多少个#xff01; 不过#…Problem Description 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事你们一定都觉得这猴子太闹腾了其实你们是有所不知悟空是在研究一个数学问题 什么问题他研究的问题是蟠桃一共有多少个 不过到最后他还是没能解决这个难题呵呵- 当时的情况是这样的 第一天悟空吃掉桃子总数一半多一个第二天又将剩下的桃子吃掉一半多一个以后每天吃掉前一天剩下的一半多一个到第n天准备吃的时候只剩下一个桃子。聪明的你请帮悟空算一下他第一天开始吃的时候桃子一共有多少个呢
Input 输入数据有多组每组占一行包含一个正整数n1n30表示只剩下一个桃子的时候是在第n天发生的。
Output 对于每组输入数据输出第一天开始吃的时候桃子的总数每个测试实例占一行。
Sample Input 2 4
Sample Output 4 22
思路分析
若是吃到第一天还剩一个桃子则一共1个桃子
若是吃到第二天还剩一个桃子则一共4个桃子13
若是吃到第三天还剩一个桃子则一共10个桃子43*2
若是吃到第四天还剩一个桃子则一共22个桃子1012*2
若是吃到第五天还剩一个桃子则一共46个桃子2224*2
......
由此可知第二天剩一个桃子是在第一天的基础上3
第三天剩一个桃子是在第二天的基础上2*3
第四天剩一个桃子是在第三天的基础上2*3 * 2
第五天剩一个桃子是在第四天的基础上(2*3*2* 2
......、代码如下
#include iostream
using namespace std;int main()
{int a[50] {0,1,4};int x,b;while(cinx){b3;//基数for(int i1; ix; i){a[i1]a[i]b;//每次都是在前一天桃子数上加上基数b*2;//每次加的基数会翻倍}couta[x]endl;}return 0;
}