逻辑推理 - 挥霍一空

题目:某人先后在五家商店用光了身上所有的钱,在每家商店,他花掉的钱是他进入这家商店时身上所带钱数的一半再加一元钱。

问题:他在进第一家商店时身上带了多少钱?

分析:假设他进入某家商店时身上钱数为X,离开时身上钱数为Y。则

X - (X/2 + 1) = Y
即:

X = 2 * (Y + 1)
现在已知离开第五家商店时Y == 0,则进入第五家商店时X = 2,这又恰好是他离开第四家商店时剩余的钱数...一次类推,可得到答案。

现在我们来用递归解决这个问题:

1. 递归出口:当他上身钱数为零时递归结束。

2. 迭代因子:将他进入的商店总数目作为这个递归的步进变量。

代码段如下:

	private static int func(int i)
	{
		if (i <= 0)
		{
			return 0;
		}
		else
		{
			return 2 * (func(i - 1) + 1);
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值