큰 수의 계산

  • 태양인
    태양인

    큰 수들의 계산은 어떤식으로들 하세요?
    과제를 하다보니... 콤비네이션( ex. C(50,25) )을 계산해야하는데
    어떤식으로 코딩을 해야할지 통 모르겠네요....
    도움좀 주세요 ^^;

    [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]


    16년 전
7개의 댓글이 있습니다.
  • helloneo
    helloneo

    보통 수를 문자열로 바꿔서 계산하지 안나요..? 예를들어.. 123 + 45 라면.. add("123", "45") 뭐 이런식으로 함수를 만들수도있구요..
    자바같은경우는 아예 BigInteger 클래스가 만들어져있습니다.. 그냥 자바로 짜는거 추천.. !!
    저같은경우는 UVa문제 풀때.. 그냥.. http://shygypsy.com/tools/BigInt.cpp 요 코드를 쓰죠..;;;;


    16년 전 link
  • hyunhwan
    hyunhwan

    Java나 Python을 쓰시면 됩니다 emoticon


    16년 전 link
  • Toivoa
    Toivoa

    손으로 계산할 때를 생각해서 구현하면 됩니다. long long을 이용해서 9자리씩 끊어서 계산하는 식으로 구현합니다.
    개인적으로는 little endian 쪽이 구현이 더 편합니다. -0-


    16년 전 link
  • Neon
    Neon

    안녕하세요 SRM 395에서 combination때문에 20분을 낭비한 Neon이라고 합니다.
    Combination의 경우엔 결과값이 크지 않더라도 중간 계산값이 커서 문제가 될 수 있고, 또 나눗셈이 포함되어 있어서 직접 bigint를 구현하기에도 애로사항이 꽃핍니다. 그나마 쉽게 combination을 계산할 수 있는 방법 중 하나가 pascal 삼각형인데요, 나눗셈 없이 덧셈만으로 combination을 구할 수 있어서 좋습니다.


    16년 전 link
  • astein
    astein

    Combination을 구하는 경우에는, 긴자리 수의 나눗셈을 짤 필요까지는 없구요, 곱셈만으로 해결 가능합니다.
    물론 곱셈만으로 풀기 위해서는 인수분해나 그와 비슷한 과정을 필요오 하지만요.


    16년 전 link
  • 케로로
    케로로

    50 ,25 ㅋㅋㅋㅋㅋㅋ 구해봣는데여 방법이있죠...............................
    포문을 돌려서 중간에 아래쪽으로 나눠지면 바로 나누면서 곱하는 겁니다^^
    그럼 해결가능^^


    16년 전 link
  • kcm1700
    kcm1700

    작은 범위의 combination (50,25라 하셨나요) 쓰실거면 파스칼 삼각형 쓰시죠~


    16년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.