问:如何在批量编程中将此Fibonacci序列转换为数组?

问题描述 投票:-3回答:2

该脚本成功计算了斐波那契序列,但我不知道如何将数字转换为数组。

`标题Fibonacci数组@echo off setlocal enableDelayedExpansion

:Fibonacci
setlocal
    ::C=current L=last S=Swap
    set C=1
    set L=0

    for /l %%G in (1,1,30) do (
        set S=!C!
        set /a C+=!L! & Call :Array !C!
        set L=!S!
)

:Array
    ::Here is where you create the array
    set i=-1

    for %%X in (%1 %2 %3 %4 %5 %6 %7 %8 %9) Do (
        set /a i+=1
        set /a Fib[!i!]=%%X
)   
    set index=!i!

    for /l %%X in (0,1,!index!) do (
        echo !Fib[%%X]!

)
pause>nul
endlocal`
arrays batch-file fibonacci
2个回答
2
投票
Title Fibonacci array
@echo off
setlocal enableDelayedExpansion

:Fibonacci

    ::C=current L=last S=Swap
    set C=1
    set L=0

    set i=-1
    for /l %%G in (1,1,30) do (
        set S=!C!
        set /a C+=L

        rem Here is where you create the array,
        set /a i+=1
        set /a Fib[!i!]=C

        set L=!S!
    )
    set index=!i!


:ShowArray

    for /l %%X in (0,1,!index!) do (
        echo %%X- !Fib[%%X]!
    )

pause>nul
endlocal

编辑:更简单的方法

@echo off
Title Fibonacci array
setlocal EnableDelayedExpansion

set N=30

:Fibonacci

    set /A i=0, j=1, Fib[0]=1, Fib[1]=1

    for /L %%G in (2,1,%N%) do set /A Fib[%%G]=Fib[!i!]+Fib[!j!], i=j, j+=1

:ShowArray

    for /L %%X in (1,1,%N%) do echo %%X- !Fib[%%X]!

pause>nul

0
投票
Title Fibonacci array
@echo off & setlocal EnableDelayedExpansion

:Fibonacci
::set counter and array index
set/a Count=30, i=0, j=1
set/a F[!i!]=1, F[!j!]=1

echo F[!i!]=1
echo F[!j!]=1
::Calculate the rest and display
for /l %%N in (2,1,%Count%) do (
    set /A F[%%N]=F[!i!]+F[!j!] 
    echo F[%%N]=!F[%%N]!
    set /A i=j, j+=1
)

通过在计算剩余序列的同时显示它,我做得更优雅

© www.soinside.com 2019 - 2024. All rights reserved.