- 论坛徽章:
- 0
|
- #include <stdio.h>
- #define CHGLONG 1000.0
- int main()
- {
- int day = 1;
- double shengchang = 2000;
- double woniu_pos = 2.0; //蜗牛第day天绳子拉长后所在的位置。
- while( woniu_pos < shengchang )
- {
- woniu_pos++; //爬1米
- day++; //过去1天
- shengchang += CHGLONG; //拉长绳子
- // 第n天拉长後后,绳子变化率位 n/n-1;
- woniu_pos *= ( day / day - 1); //拉长绳子后调整蜗牛所在位置
- }
- printf("%i", day);
- return 0;
- }
复制代码
这是我解决这个问题所写的代码,经过运行观察,这是一个死循环,就是说永远不会有爬到头的一天。
蜗牛第n天所在的位置可有一个递推的公式给出,
f(n) = (f(n-1) + 1) * (n / (n-1)) n>=2
f(1) = 2 //因为爬一米后,拉伸1倍,相当于爬2米。
而绳第n天长为: 1000(n+1)
n越趋近于无穷大, n/n-1越趋近於1
结论: 蜗牛不能爬到终点。
不知谁能给出一个严格的证明 f(n) < 1000(n+1) |
|