笔者在刷dy时,刷到的一个视频里的题。
一根弹性均匀的橡皮筋长5米,
一只小蚂蚁从一端爬向另一端。
小蚂蚁每天沿着橡皮筋爬一米。
小蚂蚁每爬一米,橡皮筋就被瞬间拉长5米
问多少天小蚂蚁可以爬到橡皮筋的另一端。
理想条件下,小蚂蚁不会死,橡皮筋不会被拉断。

#include<stdio.h>
#include<math.h>
int main()
{
/*double len=5,ant_len=0,last_len=5,day=0;
while(1)这种方法是记录每次蚂蚁的位置,直到蚂蚁位置超过橡皮筋末端
这种方法是倍数放大版解法
{
ant_len++;
len+=5;
double divid=(len/last_len);
last_len=len;
ant_len*=divid;
day++;
if(ant_len>=len) break;
}
printf("%lf",day);
*/
double len=5,last=5,ant=0,day=0;/*这种是收缩版*/
while(1)
{
ant++;
double divi =(ant/last);
len+=5;
last=len;
ant=len*divi;
day++;
if(ant>=last) break;
}
printf("%lf",day);
return 0;
}
笔者愚笨,大家看看有没有什么新的思路。 可以在评论区交流
文章讨论了编程中的一个问题:一只小蚂蚁在不断伸长的橡皮筋上爬行,如何计算蚂蚁到达橡皮筋另一端所需的天数。两种方法对比,一种是记录蚂蚁位置直到超过终点,另一种是逐步缩小问题规模。作者寻求更优解法的交流。
3548

被折叠的 条评论
为什么被折叠?



