xyz


私信TA

用户名:xyz20090410

访问量:5286

签 名:

等  级
排  名 5528
经  验 1528
参赛次数 0
文章发表 17
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路

倒推,和题目反着来

思路解释

如果N为3

答案(1)+1-> 2 *2->4 +1->5 *2->10 +1->11 *2 ->22(共重复执行3次)

因为在最后一次的时候多乘2和多加1,所以要在最后除2减1

主要代码

int tao = 1;//桃子的个数
int tian;//循环的天数
cin>>tian;
for(int i = 0;i < tian;i++)
{
	tao += 1;
	tao *= 2;
}
tao /= 2;//做最后的处理
tao--;//做最后的处理
cout<<tao;

反应快一点的朋友们就可以想到最后的处理部分和for循环部分可以简化

变为

for(int i = 0;i < tian - 1;i++)
{
	tao += 1;
	tao *= 2;
}

然后删去最后的处理

简化后的完整代码如下

完整代码

#include<iostream>
using namespace std ;
int main()
{
	int tao = 1;
	int tian;
	cin>>tian;
	for(int i = 0;i < tian - 1;i++)
	{
		tao += 1;
		tao *= 2;
	}
	cout<<tao;
}

最后附送比赛改代码好方法

屏幕截图 2021-02-18 204328.png

如图,我没加最后的处理,导致运行结果出错

我一时没想起来要加最后的处理

但我发现3070除以二时1535,和答案1534很像

屏幕截图 2021-02-18 204711.png

于是我加了14-15行

结果使人震惊

梦寐以求的1534就是这样地出现在了我面前

然后我就开始简化代码,简化成上面所说


这是我做这题地亲身经历,在比赛中很有用,希望能帮到大家!

求五星

 

0.0分

3 人评分

  评论区

  • «
  • »