有这样一个题目:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。


分析题目可以得出,开始时有20个汽水瓶,这20个瓶子可以经过置换得到若干瓶汽水...因此,使用递归算法实现会很方便得出最多喝的汽水瓶数。


空瓶置换中,每使用两个瓶子可以换一瓶汽水,因此每次兑换后,瓶子数量减1。


基于这样的分析,可以用如下代码实现:


#include<stdio.h>

#include<assert.h>


int exchange(int count){

count = count - 1;

if (count != 0)

return 1+exchange(count);

}

int main(){

int num = 0;

int count = 0;

printf("请输入钱数\n");

scanf_s("%d", &num);

count = num / 1;

printf("%d\n",count+exchange(count));

return 0;

}