- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[C/C++] 무한대 표현 피보나치 수열 본문
후배들 과제로 피보나치 수열을 내주었는데 문뜩 이런생각이 들었다.
피보나치 수열은 30개 이상만 되도 그 값은 무한대로 커지게 되버린다.
그럼 결국 unsigned int형 범위인 0 ~ 4,294,967,294 가 넘어선다면
그값은 마이너스(-) 값이 나올 것이다.
그래서 심심풀이로 시도한 것이며, 배열을 쓰지않고 두 변수의 값을 바꿔가는 코드를 짜보았다.
두 변수의 값은 함수로 인해 변경되며 포인터를 사용하였다.
------------------------------------------------------------------------------------------------------
#include <stdio.h>
unsigned long double Belong_A ( unsigned long double*, unsigned long double* );
unsigned long double Belong_B ( unsigned long double*, unsigned long double* );
int main()
{
while ( 1 )
{
unsigned long double a = 0, b = 1;
int i = 0, n = 0;
printf("피보나치 수열 갯수 입력 : ");
scanf("%d", &n);
if ( n < 1 ) // 입력 갯수가 1보다 작다면 if문 실행
{
printf("1 이상 입력 하세요! \n\n");
continue;
}
while ( i++ < n/2 ) // 입력 갯수의 반만큼 반복
{
printf("%.lf ", Belong_A ( &a, &b ) );
printf("%.lf ", Belong_B ( &a, &b ) );
}
if ( n % 2 == 1 ) // 입력 갯수가 홀수였다면 한번 더 실행
printf("%.lf ", Belong_A ( &a, &b ) );
printf("\n\n");
}
return 0;
}
unsigned long double Belong_A ( unsigned long double* a , unsigned long double* b )
{
return *a += *b;
}
unsigned long double Belong_B ( unsigned long double* a , unsigned long double* b )
{
return *b += *a;
}
'★─Programing > ☆─C | C++' 카테고리의 다른 글
[C/C++] C 코드 최적화하기 v0.1 (1) | 2009.01.13 |
---|---|
[C/C++] 반복문으로 별삼각형 그리기 (0) | 2009.01.13 |
[C/C++] 주민등록번호 각 자리별 의미와 생성규칙 (0) | 2008.05.16 |
[C/C++] va_arg, va_start, va_end (3) | 2008.05.13 |
[C/C++] 호출규약 __cdecl __stdcall __fastcall (0) | 2008.05.08 |