Skip to content

Instantly share code, notes, and snippets.

@giseongeom
Last active December 16, 2015 16:59
Show Gist options
  • Save giseongeom/5466997 to your computer and use it in GitHub Desktop.
Save giseongeom/5466997 to your computer and use it in GitHub Desktop.
생활코딩 문제: "피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까?" 출처 : http://euler.synap.co.kr/prob_detail.php?id=2 자신이 시도해보고 싶은 언어나 가장 잘 사용하는 언어를 사용하셔 푸시면 됩니다. 그 답의 소스와 답, 설명을 답글로 달아주세요^^ 그리고 되도록이면 위 사이트에도 답변을 달아주시기를 부탁드립니다.
@echo off
SETLOCAL EnableDelayedExpansion
SET /A FIBO_MAX=4000000
SET /A FIBO_A=1
SET /A FIBO_B=2
SET /A FIBO_TMP=0
SET /A FIBO_E_SUM=0
SET FIBO_LIST=List.txt
:: Create List
echo !FIBO_A! > !FIBO_LIST!
echo !FIBO_B! >> !FIBO_LIST!
GOTO LOOP_GET_FIBO
:LOOP_GET_FIBO
SET /A FIBO_TMP=!FIBO_A! + !FIBO_B!
if !FIBO_TMP! gtr !FIBO_MAX! GOTO LOOP_GET_FIBO_E
echo !FIBO_TMP! >> !FIBO_LIST!
SET /A FIBO_A=!FIBO_B!
SET /A FIBO_B=!FIBO_TMP!
GOTO LOOP_GET_FIBO
:LOOP_GET_FIBO_E
FOR /F %%i IN (%FIBO_LIST%) DO (
SET /A FIBO_E=%%i %% 2
if !FIBO_E! equ 0 SET /A FIBO_E_SUM += %%i
)
GOTO RESULT
:RESULT
echo Answer: !FIBO_E_SUM!
del /q /f %FIBO_LIST%
ENDLOCAL
@giseongeom
Copy link
Author

C:\temp>get_fibonacci.cmd
Answer: 4613732

C:\temp>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment