如何修复此fibonacci批次列表?

时间:2017-04-02 13:00:30

标签: batch-file variables fibonacci

我已经从这个网站上研究了操作数和运算符 set / a setlocal EnableDelayedExpansion ,但仍然以某种方式我的代码结束了 我,我的操作数不见了。

@echo off
cls
setlocal EnableDelayedExpansion
color 0a
title Fibonacci Lister
:Fibonacci
cls
set /a n1=1
echo %n1%
set /a n2=1
echo %n2%
set /a j=3
:loopfunction
set /a n%j%=!n%j-1%!+!n%j-2%!
echo !n%j%!
set /a j=%j%+1
goto :loopfunction

所以我想知道这里有什么问题。它可能在第14行 代码很复杂,很难理解。

2 个答案:

答案 0 :(得分:1)

#14行,您使用的是名为%j-1%%j-2%的变量,这些变量未被声明。

更新了脚本:

@echo off
    setlocal EnableDelayedExpansion
    color 0a
    title Fibonacci Lister
:Fibonacci
    set /a n1=1
    echo %n1%
    set /a n2=1
    echo %n2%
    set /a j=3
:loopfunction
    set /a j1=j-1&set /a j2=j-2
    set /a n%j%=!n%j1%!+!n%j2%!
    if "!n%j%!"=="1836311903" goto :EOF
    echo !n%j%!
    set /a j=j+1
goto :loopfunction

答案 1 :(得分:1)

@echo off
    setlocal enableextensions disabledelayedexpansion
    set n1=0
    set n2=1
:loop
    echo %n2%
    set /a "n2=n1+n2" & set "n1=%n2%"
    if %n2% gtr 0 goto loop