컴공 일기275
게시글 주소: https://orbi.kr/00072352394

교수가 꽤 재미있는 과제를 냈습니다. 피버나치 수열의 1000번째 값을 구하고 싶은데, 보다시피 자리수만 따져 보더라도 200자리가 훌쩍 넘어갑니다. 파이썬은 고민할 필요가 없겠습니다만 C언어에서는 200자리가 넘어가는 정수형을 담을 수 있는 기본 자료형이 존재하지 않습니다. 기껏해야 long long일텐데, 이 마저도 200자리는 커버할 수 없지요.
물론, 라이브러리를 이용하면 이 정도 문제야 간단히 해결할 수 있습니다만
바보가 아닌 교수는 라이브러리를 사용하지 않고, 적합한 코딩을 통해 200자리를 담아낼 수 있는 코드를 작성하라고 하는 겁니다.
방법은 간단합니다. 그냥 합치는 거죠. 기본 타입으로는 200비트를 커버할 수 없으므로, char형 200사이즈 되는 배열 두 개를 만들고,
피버나치 점화식을 돌리면서 이 배열들을 업데이트해주면 됩니다. 기본 정수형이 200비트에 모자라서 생긴 일이니, 충분히 커버할 수 있는 array 자료구조를 이용하면 되는 겁니다.
#include <stdio.h>
#include <string.h>
#define N 209 //The 1000th Fibonacci number has 209 decimal digits.
void print_digits(char d[N])
{
int i = 0;
while(d[i] == 0) i++;
while(i<N)
{
printf("%d", d[i++]);
}
}
void add_digits(char aa[N], char bb[N])
{
int i = 0;
int carry = 0;
int j,s;
while(aa[i] == 0) i++;
for(j=N-1; j>=i-1; j--)
{
if( ( s = carry + aa[j] + bb[j]) > 9)
{
carry = 1;
bb[j] = s-10;
}
else
{
bb[j] = s;
carry = 0;
}
}
}
int main()
{
char aa[N] = {0};
char bb[N] = {0};
char tmp[N] = {0};
bb[N-1] = 1;
for(int i=2; i<=1000; i++)
{
memcpy(tmp, bb, sizeof(bb)); //save bb
add_digits(aa, bb); //update bb
memcpy(aa, tmp, sizeof(tmp)); //update aa
}
print_digits(bb);
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
잘있엉
-
알텍 4점기출 3
알텍만 하면 문제 수가 좀 적다고 하더라구요… 그래서 4점 기출도 같이 병행하면서...
-
맘껏 갖고 놀수 있음
-
ㅡㅡ
-
이상형 9
적백
-
옆에서 갖고 놀고 싶음 흐흐
-
뛰어난 외모를 지닌 정시 메쟈의생을 보고 우울해짐 심지어 강기원조교임..
-
일단 제 가운데 , 저의.덕코 전재산, 통장잔고 전재산, 저희 집 집문서 걸고...
-
주량이 는 건가 4
하하
-
세월이란.
-
대학교 방문해서 입학점수 물어보면 너무 실례되는일 인가요? 1
대학교 방문해서 입학점수 물어보면 너무 실례되는일 인가요? 목표하는 대학이...
-
수능 보고 멘탈 터진 상태라 메가만 입력해서 대성은 수능 입력이랑 모의지원을...
-
아니 4
문학 비문학 노베가 어딧어 한국인이잖아
-
외모정병으로 정신과약 먹은지 어언 3년.. 다 갈아엎어야지
-
흐흐
-
물리 개념이 좀 밀려서 자신있는 수학을 몇주간 안하고 국어는 원래대로 하고 물리에...
-
고진감래오나 7
와야만한다
-
김승리 커리 늦음. 13
지금 올오카 3주차 하는데 많이 늦은거같아서요 이대로면 4월 2주차에서야 올오카...
-
문학 비문학 수1 수2
-
미친 개비싸… 1
재수러는 돈이 없어요
-
백분위 화작:93 미적:97 영어:1 정법:99 세계지리:98
-
연대가게 되면 긱사 생활 또 스트레스 ㅈㄴ 받을텐데 10
난 통학하명서 다니고 싶은데 송도랑 집이랑 멀어서ㅏ서울 살음
-
트밀 4주차까지 듣다가 생2로 변경후 공부하다가 생2 안하고 다시 물1 하려는데,...
-
이제 고3인 현역인데 김승리 풀커리 안타고 아수라만 들어도 다 얻어갈수잇을까여?...
-
콧물 훌쩍? -> 뭐 아픈걸 어쩌겠음 노캔끼고 참을게 유튜브, 게임하는거? ->...
-
기본틀이 그냥 읽고 푸는건데 노베라는게 성립이 되나
-
삼차함수 개형 추론이 매우매우매우 싫었을때 할 수 있는 이차함수 통한 풀이 이건 걍...
-
난 오늘만 사는데
-
노베 0
(대충 현우진 중학도형정리 강의교재 이미지)
-
사탐런 했는데 연대공대 못갈거 같아서 ㅈㄴ 우울함.. 8
시발 왜 내가 가려고 마음먹으면 가산점 이지랄 ㅋㅋ 캭 퇘
-
쫑느 시즌2 0
Q.E.D는 ㅈㄴ 어렵고 Q.E.D.N도 많이 어렵다는데 어떤 엔제랑 비슷한...
-
나 빼고 다 노베 아닌 거 같은데 ;;
-
이게 맞나..
-
수1,수2만.. 스블 곧 끝나서요
-
ㅈㄱㄴ
-
먼 다 노베여 5
에휴이
-
찬양해라 3
-
알찬 하루엿어
-
진심 열받네 아오 이거는 장난이라고 해도 나에게는 큰 상처야
-
가고 나니깐 현재 인강런칭하고 계시는 꽤나 유명하신 선생님... 와 진짜 너무...
-
2등급이라는데 맞나요…?
-
지금 뭘 해야할지 모르겠습니다 스블 이때까지 들었던거 틀린문제 복습하고 계속...
-
아오
-
순공시간 0분
-
수분감으로 커버가 되나요 기출? 뭔가 공통이랑 다르게 기출은 감이 안오네요.. 목표는 2에요
-
27시간
와 님 오랜만
ㄷㄷ
빅 인티저 문제 맞나 이게
이야 이거 1학년 자료구조 과제였는데