컴공 일기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를 선물하세요.
-
아니 3덮 미적 보정 1컷이네 1 0
덧셈 실수로 12점 까여서 72인데 1컷이 떴네..? 실제 수능이면 1컷 84일듯?
-
내가 ㅈㄴ 오만했네 1 0
드릴드 수2 하루에 한시즌씩해서 6일컷하려고 했는데 이렇게 하면 다른 과목을 거의 못하겠구나 싶더라
-
모고 출력 1 0
탐구 뽑아서 풀때 b4 vs a4
-
야자 시작 2 0
화이팅링
-
4수생 탐구선택 조언부탁드려요 7 0
고2때부터 쭉 화학만하고 고3때 물생지 다해보고 지구로 결정해서 화지로 현역 재수...
-
그대 먼저 계엄하자 말해요~ 4 1
나는 사실 그대에게~ 좋은 대통령 아녜요~
-
산불로 인명피해도 많지만 0 1
사람도 도망 못가고 차에서 사망한 채로 발견된것도 정말 마음 아픈데 묶여있던 개...
-
그래서 그새끼 아니 그분 14 5
에 대한 여론이 어떤가요ㅋㅋ 궁금하네 김기현 김승리 박광일 범준 현우진 복귀 뉴진스사랑해
-
2025학년도 고려대 수시, 정시 면접, 논술 기출(선행학습평가) 0 0
2025학년도 고려대 수시, 정시 면접, 논술.. : 네이버블로그
-
[속보] 경북경찰, 산불 확산에 '갑호 비상' 발령...경찰력 100% 동원 1 2
경북경찰청은 의성지역 산불 확산에 따라 오늘(25일) 오후 6시를 기해 경찰력을...
-
이건 이미 입증되었다 경험적으로
-
내용은 안읽히고 글자가 읽힘 어느순간 흰건 종이고 검은건 글씨가 됨
-
왜냐하면 내가 의대를 간다는게 거짓이니까 내가 의대를 가면 국가적 손실이다 이라는...
-
X-선의 발생 원리와 금속 분석 - 수특 독서 적용편 과학·기술 11 0 3
안녕하세요, 디시 수갤·빡갤 등지에서 활동하는 무명의 국어 강사입니다. 오늘은...
-
여기현역들다나보다공부잘하네 5 0
아
-
왜 벌써 5시...? 4 0
제 화공강 어디갓어요?
-
얼버기 22 0
안녕하세요~~
와 님 오랜만
ㄷㄷ
빅 인티저 문제 맞나 이게
이야 이거 1학년 자료구조 과제였는데