标签:c语言;递归;
有这样一个题目:每瓶汽水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;
}
本文出自 “moLova” 博客,请务必保留此出处http://molova.blog.51cto.com/10594266/1694311
标签:c语言;递归;
原文地址:http://molova.blog.51cto.com/10594266/1694311