免费注册 查看新帖 |

Chinaunix

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

[算法] 求证一个算法题目,小兔子上10楼一共有多少种方法 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
71 [报告]
发表于 2012-10-28 22:17 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
72 [报告]
发表于 2012-10-28 22:18 |只看该作者
回复 69# fergon


    递归算的话,这个问题是指数级别的,数字稍微大一点点就得算很久很久。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
73 [报告]
发表于 2012-10-28 22:19 |只看该作者
回复 71# pmerofc


    我在想,这算啥数学之美,这个特性我一开始就提到了,这就是题目所固有的特性,甚至这个解法都是从这个特性来的……

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
74 [报告]
发表于 2012-10-28 22:21 |只看该作者
本帖最后由 fergon 于 2012-10-29 09:51 编辑
starwing83 发表于 2012-10-28 22:18
回复 69# fergon

所以我也有这个版本的。
  1. count _ 1 = 1
  2. count _ 2 = 2
  3. count (_,_,result)  3 =  result
  4. count (a,b,c) n =
  5.         let result = a +b +c
  6.         in  count (b,c,result) (n-1)
  7. count' n
  8. | n <= 0 = 0
  9. |otherwise = count (1,2,4) n
复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
75 [报告]
发表于 2012-10-28 22:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
76 [报告]
发表于 2012-10-28 23:51 |只看该作者
本帖最后由 花瓣雪 于 2012-10-28 23:54 编辑

不掺和了。。。

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
77 [报告]
发表于 2012-10-29 09:39 |只看该作者
  1. int jump(int n)
  2. {
  3.     // 终止条件
  4.     if(1 == n)
  5.     {
  6.         return 1;
  7.     }
  8.     else if(2 == n)
  9.     {
  10.         return 2;
  11.     }
  12.     else if(3 == n)
  13.     {
  14.         return 4;
  15.     }
  16.     else if( n >= 4)
  17.     {
  18.         // 向下递归
  19.         return jump(n-1)+jump(n-2)+jump(n-3);
  20.     }
  21.     else  //不符合条件的输入
  22.     {
  23.         return 0;
  24.     }
  25. }
复制代码
这个else用得太奇怪了吧?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
78 [报告]
发表于 2012-10-29 09:48 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
79 [报告]
发表于 2012-10-29 10:03 |只看该作者
本帖最后由 fergon 于 2012-10-29 10:08 编辑

回复 78# pmerofc

这里的else想要表达的是 n <= 0 的情况吧, 可在这里明明是表达了 n < 4, 这样一来就肯定不能说是"不符合条件的输入“了。
   
当然,全句结合在一起的确得出 n<= 0 的结果,可是这样写就太混乱了吧?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
80 [报告]
发表于 2012-10-29 10:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP