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

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

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

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

Input
输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。

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分 增加了更多注释,添加流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值