免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: covisd
打印 上一主题 下一主题

一道关于蜗牛爬绳子的题目。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-10-06 17:40 |显示全部楼层
>>woniu_pos *= ( day / day - 1);   

老兄,你写了一个死循环



原帖由 2eye 于 2007-10-6 17:35 发表

#include

#define CHGLONG        1000.0

int main()
{
        int day = 1;
        double shengchang = 2000;
        double woniu_pos = 2.0;                //蜗牛第day天绳子拉长后所在的位置。

        while( woniu_pos < shengchang ...

论坛徽章:
0
12 [报告]
发表于 2007-10-06 17:42 |显示全部楼层
如果不考虑蜗牛会老死的话,会到达的

论坛徽章:
0
13 [报告]
发表于 2007-10-06 17:46 |显示全部楼层
你的循环里蜗牛的位置始终为0


原帖由 2eye 于 2007-10-6 17:45 发表

我感觉这句没错,这句是蜗牛位置的递推计算呀。
好像不是我写了个死循环,而是因为是个死循环,所以到不了终点。

如果我有错误,你能指出错在那里?

论坛徽章:
0
14 [报告]
发表于 2007-10-06 18:07 |显示全部楼层
>>woniu_pos *= ( day / day - 1);   

你的程序是错误的,这样算出来的蜗牛位置始终为0


原帖由 2eye 于 2007-10-6 18:04 发表


请看我的初始化,我是从第1天拉伸以后循环的,蜗牛位置我初始化为2.0;
你可以在循环中检测以下蜗牛位置和绳子长度,你会发现蜗牛爬到1半是根本不可能的,实际情况是绳长达到10^7后,蜗牛才爬几万米,相差 ...

论坛徽章:
0
15 [报告]
发表于 2007-10-07 08:58 |显示全部楼层
>>j = j+ 1000 * k;

这个算法中的这一句是不对的


原帖由 sesame0816 于 2007-10-6 09:29 发表
#include

int main(int argc, char **argv)
{
        int i = 1, j = 1000, k = 1, t;

        while (i < j)
        {
                t = k + 1;
                i = i * (t / k) + 1;
                j = j+ 1000 * k;
                ++k;
        }

        printf("%d\n", k); ...

论坛徽章:
0
16 [报告]
发表于 2007-10-07 09:44 |显示全部楼层
你的程序算出来的结果也是不对的


原帖由 sesame0816 于 2007-10-7 09:11 发表
对是有问题,稍微该下就可以了:
j = j + 1000

愚蠢的错误, 哈哈

              起点                              终点
第一天:     0                                   1
2:            1*(2/1)  ...

论坛徽章:
0
17 [报告]
发表于 2007-10-08 10:48 |显示全部楼层
理论上是可以达到的
实际上是达不到的


原帖由 tailuo 于 2007-10-8 10:41 发表
这是一个很典型的悖论..
理论上说是到达不了的..
但是实际中是可以到达的..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP