递归函数进阶版

这篇博客探讨了如何使用递归函数解决两个问题:一是根据兔子繁殖模型计算达到特定兔子数量所需的最少月数,二是计算一个随机数字的各位数字之和。通过递归方法,博主详细解释了问题的解决思路,并给出了递归函数的应用示例。
摘要由CSDN通过智能技术生成

    首先回顾一下函数的递归使用,经典习题兔子繁殖,1对兔子三个月后能生下一对兔子,然后第一对兔子可以继续生小兔子,一对生下的小兔子三个月后也能生一对小兔子,兔子对数,1,1,2,3,5,8,13,21,34 ......;请设计程序计算输入的兔子数目,输出最少月数

思路(递归函数):首先这属于斐波那契数列的逆向应用,正常思维计算某个月份的兔子总数比较简单,但这题是指定数目求月数,那我们就想到可以先假设一个月份,然后设计函数求出这个月份对应的兔子数目,再跟我们预期的数目比较,如果数目不够那就增大月份,这样算出的兔子总数也增加了,再用这个数字跟我们最开始设定的数目比较,如果还小那么继续增加月数,一直到得到的兔子数目不小于设定值为止,那么月份不断增加的过程我们就想到了while循环,通过月份自加的过程更新兔子总数,然后循环终止条件刚刚也找到了,就是得到的数字不小于设定值的时候,那么通过一个函数里加入while循环输出月数,再用这个函数调用另一个计算确定月数的兔子数目的函数,基本就解决问题了

#include <stdio.h>

int count(int sum);
int cal(int y);
int main()
{	
	int n,month;
	printf("请输入兔子总数:");
	scanf("%d", &n);
	month=cal(n); 
	printf("需要%d月\n", month);

	return 0;
}

int cal(int y)
{
	int ret=1,sum=1;
	
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值