工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
楼主: jayj

帮帮忙!大家帮我看下用什么算法!我想用递归的!但不知道从合做起!!

[复制链接]
发表于 2006-4-14 19:37 | 显示全部楼层

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>Javascript Edition</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  7. </head>

  8. <body>
  9. <script language="javascript">
  10. function getAmount(monkeyCount, lastCount) {
  11.         var eachCount;
  12.         var flag;
  13.         if (monkeyCount == 1) {
  14.                 eachCount = lastCount;
  15.         } else {
  16.                 do {
  17.                         eachCount = getAmount(monkeyCount-1, lastCount)/4;
  18.                         if ((eachCount-Math.floor(eachCount)) != 0) {
  19.                                 lastCount++;
  20.                                 flag = true;
  21.                         } else {
  22.                                 flag = false;
  23.                         }
  24.                 } while (flag == true);
  25.         }
  26.         return eachCount*5+1;
  27. }
  28. alert("共有"+getAmount(5, 1)+"只桃子.");
  29. </script>
  30. </body>
  31. </html>
复制代码

output:
共有3121只桃子.
回复

使用道具 举报

 楼主| 发表于 2006-4-14 20:19 | 显示全部楼层

THANK Q

[em021]
回复

使用道具 举报

发表于 2006-4-14 22:56 | 显示全部楼层
本来还想写JAVA,C++,C#,VBScript版的...才发现啥都没装...

评分

1

查看全部评分

回复

使用道具 举报

发表于 2006-4-14 23:07 | 显示全部楼层
帮楼上加分了.
回复

使用道具 举报

发表于 2006-4-14 23:57 | 显示全部楼层
厉害。光是一个C语言版的就写了我三十分钟......
回复

使用道具 举报

发表于 2006-4-15 00:45 | 显示全部楼层
学到也!!!
回复

使用道具 举报

发表于 2006-4-15 10:31 | 显示全部楼层
其实我的代码是可以优化的.
lastcount这个参数作为一个指针传入的话可以减少递归的次数.
例如,
在递归倒数第2层得到eachcount为a值不能被倒数第一层返回的tempcount整除时,lastcount++, 重新递归, 直到eachcount被上一层返回的tempcount整除,假设已经是lastcount+50的情况了,接着返回到倒数第3层时, 可能会发现, eachcount不能被倒数第2层返回的tempcount整除, 于是lastcount++, 注意到, 这里面lastcount是重新递归的, 其又得进行lastcount到lastcount+50这段递归过程, 而实际上这段在前面已经递归过证实了是不可行的, 所以, lastcount作为指针传入, 递归的临时结果得以保存, 独立于递归函数之外, 我们在前面计算的lastcount的功夫就不会被白费掉.
回复

使用道具 举报

发表于 2006-4-15 23:38 | 显示全部楼层
学习……学习……
回复

使用道具 举报

发表于 2006-4-16 00:32 | 显示全部楼层
我今天运行结果竟然只有四只桃子,会不会是溢出了
回复

使用道具 举报

发表于 2006-4-19 23:00 | 显示全部楼层

天亮了,又要开工了

厉害呀!不错!

[ 本帖最后由 jackey_sky 于 2006-4-19 23:07 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-14 22:22

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表