컴공 일기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를 선물하세요.
-
까놓고 말해서 오르비에 몰려와갖고 수험생들한테 의대증원과 정부 정책의 부당함을...
-
2월 한달 교통비
-
림잇 2025 0
사문 임정환 리밋 2025 작년 거로 들어도 되나요?
-
본인 ㄱㅁ할꺼 18
누우면 3초뒤에 곯아떨어짐
-
취업은 어디가더잘해요
-
저녁먹구 왓서여 0
설렁탕 머것서요 ㅎㅎ
-
왤케 평이 좋음? 문제 해석법 알려주신다는대 엄청 궁금하네 수능수학의 강민철인가여?...
-
멜라토닌 3mg사세요 빨리 이거 개사기템임 그리고 심적 문제도 크니까 정신과도 함...
-
그 메인 갔던 7수생 빼면 다 굿인건가
-
황우석의 몰락 관련 유튜브 영상에 본인의 모든 연구가 네이처지에서 철회당했어도 돈 많이 벌어서 과학자로써 실패한 거 아니라고 하는 사람이 있네 0
ㅋㅋㅅㅂ 진심으로 하는 얘긴가 학계에서 네이처지가 차지하는 위상을 생각하면 나올 수가 없는 말인데
-
살려죠 오뿌이 여러분
-
수학 13-15번 못 풀면 어떤 공부 해야하나요?ㅠ.. 11
작년 6,9,수능 모두 공통 13,14,15,20,21,22번을 못 풀었어요...
-
하루넘기는것도 만만치 않은데 서로 싸워서 뭐해요… 응..? 뭐가 그렇게 불편하고 싫은건데요..
-
전 일상이 씹덕이라 그런 생각조차 못했는데 싫어하는 분들이 많군뇨 흑
-
ㅈㄱㄴ
-
1학년 내신 3-4등급 고2이고 내신 대비용으로 기출문제집 샀습니다. 쎈발점...
-
아니면 쎈을 빼고 워크북을 하는게 나을까요? 시간이 없어서 둘다는 못합니다ㅠㅠㅠ
-
저능하다저능해
-
한완수에 내용이 다 적혀있어가지고 과외생이 혼자서 할 수 있겠다고 런할까봐...
-
이거 풀어냄 7
으하하하하
-
1시간 대기 시켜놓고 면접도 안보고 이력서 작성하고 가라고 하는건 처음이네 학원 전화번호도 안줌
-
강라현쌤 연구실 전번이나 인스타 주소 아시는 분 계셔요?
-
동생이 재수를 한다...... 요즘 시대 재종 웰케 모르는 쌤들이 많지? 라때는...
-
어느정도 상실한지는 꽤 됐잖아 이제는 수험생 일기 커뮤니티의 적합한 글에 대한...
-
젭알
-
저포함해서 대부분은 아마 잘못된 생각, 행동인지도 모르고 머리박다가 몇번 머리가 깨져야 깨닫는데
-
서로 똥글 적당히 쓰면 될거슬
-
전문적인 공부나 연구 하고싶으면 연고공보단 카이스트 가는게 더 낫겠죠?
-
필요조건으로 정답의 후보를 정하고 다시 재확인 하는 과정이 왜이리 어려우락,,,
-
지2보다 재밌네 시간순삭
-
흐악 죽겠다 근데 룸메랑 잘 맞아서 재밌었음 이번주는
-
표점은 높은데 백분위가 딸릴 수가 있나요?
-
맛있네요 두그릇째인데 점심도 두그릇 저녁도 두그릇.. 살찌려나 174.55
-
순열과 조합까지에서 경우의 수, 순열 파트까지만 나온다는거 맞지?
-
ISE 4
Internal Server Error
-
1. 기출이 중요하다 - 개념을 사용하는 사고방식 갖추려고 2. N제와 성적이...
-
살려줘요
-
ㅈㄴ 명작이지만 다시는안볼듯 ㅈㄴ 선정적이었음
-
합성함수 그래프 그리는법 설명하긴 했는데
-
마라탕 호불호 조사 27
ㅇㅇ
-
307
-
수학 커리 0
김범준 스블-기출 강기원 시대 라이브 병행 무리인가요? 현우진 강기원 김범준
-
계엄을 때렸는데 4
엄.. 우리가 문제인건가
-
어떤 논쟁이나 담론을 시작하기 전엔 용어와 개념의 정의가 필요함 그런데 저 용어와...
-
정분난다고 애들 남녀따로앉힘 존나웃기네 그래도고3담임 입시잘알이라 다행이다
-
국어만 넣어두긴 했는데 다른 과목도 상관 없이 PDF 넣으면 알아서 PDF...
-
보면서 느낀게 있음 진짜 빈말이 아니고 수능만점정도는 무조건 받겠다는 마음으로...
-
그냥 불러봤어 긁?
와 님 오랜만
ㄷㄷ
빅 인티저 문제 맞나 이게
이야 이거 1학년 자료구조 과제였는데