HDOJ2013,做得这么费劲我还是太菜了

今天水论坛才看见别人说HDOJ要从第十一页刷起……
最近都在准备考试没有敲代码
后天计算机导论,慌的一批

于是找了通过率最高的题来做

Problem-HDOJ2013蟠桃记
Problem Description
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵-
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

Input
输入数据有多组,每组占一行,包含一个正整数n(1

Output
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。

Sample Input
2
4

Sample Output
4
22

AC的代码在这

#include<stdio.h>
int main(void)
{
	int n;//设剩一个桃子天数为n
	while(scanf("%d",&n)!=EOF){//读取当前的天数,并赋给n
		long a=1;//a为从后往前推,当天的桃子数
		for(a;n-->1;a=(a+1)*2);//利用循环进行递推,推出n-1天前的桃子数
		printf("%d\n",a);//打印n-1天前的桃子数
	} //因为不止一组数据,所以要使用while函数
	return 0;
 } 

花了3~4分钟看题,六分钟写代码,二十分钟改BUG

可能有必要解释一下代码里的for循环函数

第一次使用flowchart流程图,有点费劲

Created with Raphaël 2.2.0 进入while函数内的for循环 a=1;//初始化 n-->1; a=(a+1)*2; 结束for循环 yes no
n-->1;

这个语句的意思是先将n与1作比较,比较结束后再执行n=n-1;的语句。
这单条语句差不多和

n>1;
n=n-1;

两条语句等价,使循环执行n-1遍。

就先写成这样吧

2019年1月13日14点40分
在这里插入图片描述
2019年1月13日23点02分 增加了更多注释,添加流程图

你可能感兴趣的:(OJ上的做题经验)