hnryu   4년 전

어느부분이 틀린지 모르겠습니다 ㅜㅜ

반례가 어떤것이 있을까요...?

chogahui05   4년 전

100C50 = 1.00891344546e+29

2^63 = 9.22337203685e+18

다른 방법을 써 봅시다. BigInteger라던지..

hnryu   4년 전

bigint 를 어덯게 구현할 수 잇을까요? 잘 이해가 되지 않습니다.

chogahui05   4년 전

직접 구현하시려면

https://silentmatt.com/blog/20...

이거 보심 좋겠네요. 그런데, 저렇게 복잡한 기능까지 구현할 이유는 없어보이고요.

조합식의 특성상, 그냥 더하기만 구현하면 되는 것이잖아요.


보통, 덧셈에서 신경써줘야 할 것은, 올림정도밖에 없어요.

String 객체를 인자로 받아서 구현하시면 편리하겠네요. 


java에서는 BigInteger 클래스를 사용해서 구현하실 수 있습니다.

hnryu   4년 전

c로는 구현하기 어려운건가요... c언어 외 다른언어는 구현할 줄 몰라서요... ㅜㅜ

chogahui05   4년 전

아뇨. 단순하게 생각하면

struct data{

long long sangwi;

long long hawi;

};

이런 식으로 해 놓으시면 되겠습니다. 어짜피 더하기만 하면 되기 때문에

올림만 잘 처리하면 될 거 같고요. 어느 숫자를 단위로 끊을지는 잘 선택하시는 게 좋아보이네요.

2^62이라던지. 2^60이라던지..


덧셈은 그냥 덧셈, 올림, 오버플로 처리만 잘 하면 됩니다.

댓글을 작성하려면 로그인해야 합니다.