蚂蚁爬树问题

这篇博客介绍了如何解决一只小蚂蚁在爬ncm高小草的问题,它每分钟爬u厘米,然后下滑d厘米。作者通过分析问题分为两个阶段,并提供了一个简单的C语言程序来计算蚂蚁爬到顶部所需的时间。程序首先计算不考虑下滑情况所需时间,然后判断是否需要额外的时间来完成最后的冲刺。思维能力和算法理解在此问题的解决中起着关键作用。

有一只长为1cm的小蚂蚁想要爬上一颗高ncm的小草,每一分钟他都能向上爬ucm,但因为体力有限,爬一分钟后要休息一分钟再爬,在这一分钟内会向下滑dcm,问小蚂蚁多久才能爬上小草?

初步分析可知此过程分为两个阶段:一、爬上又滑下
二、最后一段距离小于等于ucm,小蚂蚁可以直接爬上(一分钟)。
话不多说,直接上程序。
解决方法一

#include<stdio.h>  
int main()  
{  
    int n,u,d;  
    scanf("%d%d%d",&n,&u,&d);   
    int t=(n-u)/(u-d);u-d;
    if(t*(u-d)<(n-u)) t++;  
    t*=2;
    t++;
    printf("%d\n",t);
    return 0;  
}

该类问题其实在c语言中实现十分简单,重要的分析出他的过程,所以在解决此类问题中思维能力格外重要。
下次分享其他思路。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值