*계산부분에는 문제가 없었지만 정작 출력부분에서 문제가 있다는
것을 깨달았다. 엉뚱한수가 나와 코딩을 다시 했다. *
실제 무한자리는 안되지만 -_- 시간만 충분하다면 가능할듯도 싶은.
메모리효율에서는 그렇게 좋은 방법이 아니다.
동적으로 한다면 더 효율적일듯
2009년을 맞아 2009번째 피보나치 수열...
2009 번째 수 : 32113249982681582845238472032097086207406078264369213
828207269738873528372164658136016076243682784102556189454848089889
002054262349680942366466972306698093162490877572473940239488148300
961143305441534826717764033122267283563162956490785858430785050847
615157489167011704773920617812432061755619769908742336741418110524
930071538512879429592076595317350864373346109900208767876564876092
1612656571558458025510084617009128909
[수정한 소스]fibo_call.cpp
[프로그램으로 계산한 결과]fibo.txt
*추가사항*
위의 소스는 내가 대학1학년때 재귀형태로 만든것이다.
재귀형태 외에도 for문으로 구현할수가 있다.(비재귀)
아래는 책에 있는 소스를 약간 변형한것.
것을 깨달았다. 엉뚱한수가 나와 코딩을 다시 했다. *
실제 무한자리는 안되지만 -_- 시간만 충분하다면 가능할듯도 싶은.
메모리효율에서는 그렇게 좋은 방법이 아니다.
동적으로 한다면 더 효율적일듯
2009년을 맞아 2009번째 피보나치 수열...
2009 번째 수 : 32113249982681582845238472032097086207406078264369213
828207269738873528372164658136016076243682784102556189454848089889
002054262349680942366466972306698093162490877572473940239488148300
961143305441534826717764033122267283563162956490785858430785050847
615157489167011704773920617812432061755619769908742336741418110524
930071538512879429592076595317350864373346109900208767876564876092
1612656571558458025510084617009128909
[수정한 소스]fibo_call.cpp
[프로그램으로 계산한 결과]fibo.txt
*추가사항*
위의 소스는 내가 대학1학년때 재귀형태로 만든것이다.
재귀형태 외에도 for문으로 구현할수가 있다.(비재귀)
아래는 책에 있는 소스를 약간 변형한것.
#include <iostream.h>
typedef unsigned long int ULONG;
ULONG fib(ULONG position);
int main()
{
ULONG answer, position;
cout << "Which position? ";
cin >> position;
cout << "\n";
answer = fib(position);
cout << answer;
return 0;
}
ULONG fib(ULONG n)
{
ULONG m1 = 1, m2 = 1, answer = 2;
if ( n < 3)
return 1; // 첫항과 둘째항은 무조건 1이다.
//점화식에 따라 구현된 소스
for ( n -= 3; n; n--)
{
m2 = m1;
m1 = answer;
answer = m1 + m2;
}
return answer;
}




덧글