[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]求助批处理求出斐波那契数列的前项除以后项的值

本帖最后由 112 于 2020-4-15 21:24 编辑

求助大神!我想制作一个程序。这个程序可以求出斐波那契数列的前项除以后项的值。
程序输出如下:
  1. (1/1的值)
  2. (1/2的值)
  3. (2/3的值)
  4. (3/5的值)
  5. (5/8的值)
  6. (8/13的值)
  7. ...............
复制代码
众所周知,菲波那切数列的前项除以后项的结果会越来越接近黄金分割数。我就是好奇心强。想用批处理计算出来。
  1. @echo off
  2. set firstfib=1
  3. set secondfib=1
  4. set ans=
  5. for /l %%a in ( 1 , 1 , 100 ) do set \a secondfib=secondfib+firstfib&set \a firstfib=firstfib+secondfib&set /a ans=firstfib/secondfib&echo %ans%
  6. pause>nul
复制代码
这是鄙人的代码,只是不知道批处理如何进行小数运算和鄙人的程序为何出错。还请大神赐教。

鄙人又改进了下。还请大神赐教。
  1. @echo off
  2. set firstfib=100000000000000000000000000
  3. set secondfib=100000000000000000000000000
  4. set ans=
  5. :conclusion
  6. set /a secondfib=secondfib+firstfib
  7. set /a ans=firstfib/secondfib
  8. echo %ans%
  9. goto :tmp
  10. :tmp
  11. set /a firstfib=firstfib+secondfib
  12. set /a ans=secondfib/firstfib
  13. echo %ans%
  14. goto :conclusion
  15. pause>nul
复制代码
而不知为何,运行结果有些诡异。鄙人已经尽力了!

TOP

本帖最后由 ivor 于 2019-11-4 21:06 编辑
  1. <# :
  2. @Powershell "& {[ScriptBlock]::Create((gc '%~f0' -raw)).Invoke()}" & pause & goto :eof
  3. #>
  4. function fib($num){
  5.     if($num -eq 1){
  6.         return 1;
  7.         }
  8.     if($num -eq 0){
  9.         return 1;
  10.         }
  11.     else{
  12.         return (fib ($num-2)) + (fib ($num-1));
  13.     }
  14. }
  15. for($a=0; $a -le 20;$a++){
  16.     (fib($a)) / (fib($a+1))
  17. }
复制代码
python花里胡哨版:
  1. fib=lambda num:1 if num <= 1 else fib(num-2)+fib(num-1)
  2. [print(fib(i)/fib(i+1)) for i in range(20)]
复制代码
python3.7 效率版
  1. fib=[1,1]
  2. for i in range(200):
  3.     fib.append(fib[i+1]+fib[i])
  4.     print(f"{i}: {fib[i]} / {fib[i+1]} = {fib[i]/fib[i+1]}")
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢大神!

TOP

返回列表