디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

밑에 프로그램 덧셈 캐리처리하는거는 두줄만 추가하면 되네 + 버그수정

NC(120.142) 2011.05.24 00:05:53
조회 94 추천 0 댓글 2




#include <iostream>
#include <vector>
#include <new>

using namespace std;

struct BigInt
{
 BigInt() { }
 BigInt(int n) : m_digit(n,0){ }
 BigInt(vector<int>& data) : m_digit(data){  }

 vector<int> m_digit;

 const BigInt operator +(const BigInt& rhs) const
 {
  unsigned int rSize = rhs.m_digit.size();
  unsigned int lSize = m_digit.size();
  unsigned int maxSize = max(rSize, lSize);

  BigInt Temp(maxSize + 1);
  
  if(rSize > lSize)
  {
   for(unsigned int i = 0; i < lSize; i++)
   {
    Temp.m_digit[i] = m_digit[i] + rhs.m_digit[i];
    if(Temp.m_digit[i] > 10)
    {
     Temp.m_digit[i] -= 10;
     Temp.m_digit[i+1]++;
    }

   }

   for(unsigned int i = lSize; i < rSize; i++)
   {
    Temp.m_digit[i] = rhs.m_digit[i];
    Temp.m_digit[i] = m_digit[i] + rhs.m_digit[i];
    if(Temp.m_digit[i] > 10)
    {
     Temp.m_digit[i] -= 10;
     Temp.m_digit[i+1]++;
    }
   }
  }
  else
  {
   for(unsigned int i = 0; i < rSize; i++)
   {
    Temp.m_digit[i] = m_digit[i] + rhs.m_digit[i];
   }

   for(unsigned int i = rSize; i < lSize; i++)
   {
    Temp.m_digit[i] = m_digit[i];
   }
  }
  return Temp;
 }


 const BigInt operator *(const BigInt& rhs) const
 {
  unsigned int  fSize = m_digit.size() - 1;
  unsigned int gSize = rhs.m_digit.size() - 1;
  unsigned int hsize = fSize * gSize + 1;
  BigInt H(hsize);

  for(unsigned int i = 0 ; i < hsize ; i++)
  {
   if(i <= gSize)
   {
    // 여기 int 맞다. unsigned int 아니다.
    for(int f = 0, g = i; (f <= fSize) && (g >= 0); f++, g--)
    {
     H.m_digit[i] += m_digit[f] * rhs.m_digit[g];
    }
   }
   else
   {
    // 여기 int 맞다. unsigned int 아니다.
    for(int f = i - gSize, g = gSize; (f <= fSize) && (g >= 0); f++, g--)
    {
     H.m_digit[i] += m_digit[f] * rhs.m_digit[g];
    }
   }
  }

  // 여기에다가 캐리 처리하는 코드 넣어야 한다.
  // 이대로 끝내면 그냥 보통의 다항식을 곱하는게 되니까 캐리 처리는 알아서 해라.

  return H;
 }

 void print() const
 {
  printf("값 :\\n");
  for(unsigned int i = 0 ; i < m_digit.size() ; i++)
  {
   printf("%d", m_digit[i]);
  }
  printf("\\n");
 }
};


int main(int argc, char* argv[])
{
 vector<int> testInt1(200, 0);
 vector<int> testInt2(200, 0);

 for(int i = 0 ; i < 200 ; i++)
 {
  testInt1[i] = i % 10; // 여기에 넣는 값은 니가 필요한 값 알아서 넣으면 됨
  testInt2[i] = (i * i) % 10;
 }

 BigInt bigInt1(testInt1);
 BigInt bigInt2(testInt2);
 BigInt bigInt3;

 bigInt3 = bigInt1 + bigInt2;
 bigInt3.print();
 bigInt3 = bigInt1 * bigInt2;
 //bigInt3.print();
}



곱셈에서 캐리처리하는건 이거보다 조금 복잡할거같다.
아까는 printf하는 부분에서 삽질함.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 자식 사교육에 돈 엄청 쓸 것 같은 스타는? 운영자 24/09/09 - -
262360 db를 공부하려고하는데 뭘봐야하나욤 [4] ㅋㅌㅊ(210.178) 11.08.05 111 0
262358 호구인증.jpg [1] 꿀레(180.231) 11.08.05 145 0
262356 윗사람에 대한 스트레스 만땅. [2] 스트레스.(218.54) 11.08.05 71 0
262355 php는 어떤 언어에서 파생된거임?? [2] 발코딩갤로그로 이동합니다. 11.08.05 110 0
262354 개발자 신고제는 진짜 막장인듯 [1] 거칠게갤로그로 이동합니다. 11.08.05 115 0
262353 주갤 나만 안들어가지냐 ? ㄱㄴㄴ(183.102) 11.08.05 22 0
262352 프갤 횽들 사랑해~~~~ [4] 설치마법사(211.196) 11.08.05 67 0
262351 형들 여기 프로그래밍 갤러리 인데... [3] 발코딩갤로그로 이동합니다. 11.08.05 107 0
262350 개발자 신고인가 뭔가 한 횽들 있나여???? [4] 거칠게갤로그로 이동합니다. 11.08.05 107 0
262348 형들 Runnable 클래스 말야 발코딩갤로그로 이동합니다. 11.08.05 41 0
262347 형들 만약에.. [27] 발코딩갤로그로 이동합니다. 11.08.05 194 0
262346 오늘은 일도 안하고 [15] monoless갤로그로 이동합니다. 11.08.05 123 0
262345 일회용 막대커피.. 뜯고 버림...ㅡ.ㅡ; [5] blackd(58.151) 11.08.05 189 0
262343 내가 본 가성비 최악의 난이도의 자격증 시험은 컴활 1급 인듯... [5] 허허벌판갤로그로 이동합니다. 11.08.05 291 0
262342 ocjp(구 scjp) 빨리 따야겠다 [3] 뇌지랄갤로그로 이동합니다. 11.08.05 220 0
262341 아프리카TV 같은 프로그램을 만들려면 무엇을 공부해야하나요? 학교에선뭘배(175.112) 11.08.05 94 0
262339 [Javascript] 컨텍스트 메뉴 [2] 땡칠도사갤로그로 이동합니다. 11.08.05 88 0
262338 형들 이거 왜 띄어쓰기가 안되? [4] 가격거품갤로그로 이동합니다. 11.08.05 99 0
262337 이번 해킹사태에 관련하여 ... 내꿈은버스기사갤로그로 이동합니다. 11.08.05 66 0
262333 새로 일하게 된 직장에서 빨리 안정찾는 법(정신적으로) [1] 분당살람갤로그로 이동합니다. 11.08.05 91 0
262332 게시판db를 램디스크로 사용하려하는데 [6] ㅂㅈㄷ(210.178) 11.08.05 99 0
262331 정보처리기사 실기가 왜 어렵지 [4] 깡통찼으요갤로그로 이동합니다. 11.08.05 155 0
262330 스스로 신뢰를 떨어뜨리는 네이버 [1] d(112.146) 11.08.05 163 0
262328 이미지 축소시 안티알리안스 적용차이 [3] 주방아가씨갤로그로 이동합니다. 11.08.05 210 0
262325 5명이 500만원을 모아 창업한 티켓몬스터의 신화!!! [4] 홍라희(118.127) 11.08.05 216 0
262324 아시아나 항공기 기장 [2] 이모군(58.228) 11.08.05 110 0
262323 i3 + HDD vs 펜티엄 + SSD [15] ㅁㄴ(143.248) 11.08.05 231 0
262320 이스트 소프트의 미래.jpg [5] ㅇㅇ(121.133) 11.08.05 378 0
262316 프로그램은 영어 못하면 좆밥되는듯.. [4] ㅇㅇㅇ(118.36) 11.08.05 215 0
262311 파폭은 3.9x가 나은거같다 [1] ㅂㅈㄷ(210.178) 11.08.05 79 0
262310 모니터에 보이는 화면을 변형하는 프로그램 질문있어요 궁금해요(163.152) 11.08.05 49 0
262308 형들 vc++6.0 작업한거 vs2010에서 못봐요? [6] 소라마녀갤로그로 이동합니다. 11.08.05 95 0
262306 주식 현물 가지고 있는넘?? [2] 시불라미갤로그로 이동합니다. 11.08.05 89 0
262305 우분투에서 비쥬얼스튜디오 어케실행하지요? [5] 오마이갓넬.갤로그로 이동합니다. 11.08.05 173 0
262303 형들 초보자용 C# 책좀 추천 좀 해주셈 [8] ㅇㅇ(115.86) 11.08.05 171 0
262301 어제 밤에 물어봤던 iframe 주소 얻기 관련.. 자답 [2] 허허벌판갤로그로 이동합니다. 11.08.05 96 0
262298 경영학과에서 컴공으로 편입하려는데 조언좀 부탁드립니다 [2] 고민(175.204) 11.08.05 253 0
262295 인터넷실명제 폐지 검토한 바 없다   [4] d(112.146) 11.08.05 118 0
262293 요즘 유행하는 EGG 파일이란.. [4] 때릴꺼야?(119.67) 11.08.05 218 0
262291 임베디드 하는 형님들 궁금한게 있습니다. Kirov갤로그로 이동합니다. 11.08.05 64 0
262290 님들 오라클 쿼리 column명(+) 이거 무슨 의미임니까? [2] 123(125.7) 11.08.05 65 0
262287 JQuery 기반의 Table 관련 플러그인 추천 부탁드립니다 [11] 맥콜(121.66) 11.08.05 116 0
262285 게시판에 새글이 등록된걸 어떻게 알수있을까? [5] Paradise갤로그로 이동합니다. 11.08.05 83 0
262284 형들 질문하나 답변좀 ㅠ.ㅠ [1] 질문점(125.129) 11.08.05 38 0
262283 성님들질문좀할게요 ㅠㅠㅠ L.Loulight갤로그로 이동합니다. 11.08.05 25 0
262282 간만에 들옴 꿀레(180.231) 11.08.05 31 0
262281 횽들 정보처리기사 요점만 보면 될까? [16] ㅇㅇ(119.70) 11.08.05 197 0
262280 콘솔로 랭킹지원하는 간단한게임만드는데 [1] ㅂㅈㄷ(210.178) 11.08.05 81 0
262278 책 도움없이 플밍 하게 되기 까지 얼마나 걸렸냐? [3] (211.246) 11.08.05 102 0
262277 정적바인딩이랑 동적바인딩 섞어 쓰니까 엄청 강력해지네.. mercedes㉦benz갤로그로 이동합니다. 11.08.05 56 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2