• 전문가 요청 쿠폰 이벤트
*승*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 1
검색어 입력폼
  • 큰정수 곱 평가A좋아요
    #include #include #define MMax 100#define EndOfDisit 9999//정수 배열의 끝을 표현#define TRUE 1#define FALSE 0int LLength(int []);// 배열의 길이를 정수로 반환int Maxchoice(int, int);// 두 정수 중 큰 수 반환bool Odd(int);// 짝수....1; 홀수....0; 반환void IntMul(int [], int [], int []);// 두 자리 이하인 두 정수 배열의 각 인덱스 값을 두 정수변수에 각각 더한 후,// 곱한다...... 그리고 정수 배열에 자리수를 맞추어 대입한다.void ArrayHap(int [], int [], int []);// 두 배열의 합을 더한 후 결과를 저장.void Prod(int [], int [], int []);// 두 배열을 둘로 나누고 결과를 저장.void main(){char charvar[MMax];// 입력받는 변수int intvar1[MMax];// 문자를 숫자로 변환 후 저장int intvar2[MMax];int Zero = 0;// 입력을 두번 실행을 위한 카운트......int j;//for문 변수int result[MMax*2];// 곱한 결과를 저장// TITLEprintf("##### 큰 정수 곱셈 ######n");printf("두 정수를 입력하시오!n");for( int i = 0; i < 2; i++){scanf("%s" , charvar);int count = 0;if(Zero == 0){// 정수 배열로 옮기기for(j = 0; charvar[j] != NULL; j++){intvar1[j] = charvar[j] - 48;}intvar1[j] = EndOfDisit;Zero = 1;}else{//정수 배열로 옮기기for(j = 0; charvar[j] != NULL; j++){intvar2[j] = charvar[j] - 48;}intvar2[j] = EndOfDisit;}}i", result[i]);printf("n");}void Prod(int aa[], int bb[], int cc[]){int i, j, m, n1, n2, index, digit, differ;int temp;int half_len;n1 = LLength(aa);n2 = LLength(bb);digit = Maxchoice(n1, n2);// digit = digit/2....결과의 반올림하기if(Odd(digit))digit++;half_len = digit / 2;// 배열을 나누고 저장할 변수int x[100], y[100], w[100], z[100];// 배열의 초기화for(i = 0; i < half_len; ++i)x[i] = y[i] = w[i] = z[i] = 0;x[i] = y[i] = w[i] = z[i] = EndOfDisit;if(n1 == 0 || n2 == 0){cc[0] = EndOfDisit;return;}if(digit = n2){m = n1 / 2;index = m;if(Odd(n1))index++;// x=u divide (10에 m제곱)for(i = 0; i < index; i++)x[i] = aa[i];x[i] = EndOfDisit;// y=u rem (10에 m제곱)for(i = 0; (i + index) < n1; i++)y[i] = aa[i+index];y[i] = EndOfDisit;// w=v divide (10에 m제곱)if(n2 < index){temp = 0;w[0] = EndOfDisit;}else{differ = n1 - n2;for(i = 0; (i+differ) < index; i++)w[i] = bb[i];w[i] = EndOfDisit;temp = i;}// z=v rem (10에 m제곱)for(i = 0, j = temp; j < n2; ++i,++j)z[i] = bb[j];z[i] = EndOfDisit;}else{m = n2 / 2;index = m;if(Odd(n2))index++;/에 m제곱)if(n1 < index){temp = 0;w[0] = EndOfDisit;}else{differ = n2 - n1;for(i = 0; (i+differ) < index; i++)w[i] = aa[i];w[i] = EndOfDisit;temp = i;}// z=v rem (10에 m제곱)for(i = 0, j = temp; j < n1; i++, ++j)z[i] = aa[j];z[i] = EndOfDisit;}int resultone[100];Prod(x, w, resultone);for(i = 0; resultone[i] != EndOfDisit; ++i);// 10에 2*m제곱 즉, 0만을 정수 배열에 추가한다.if(resultone[0] != EndOfDisit){for(j = 0; j < 2*m; j++){resultone[i] = 0;++i;}resultone[i] = EndOfDisit;}int resulttwo[100];Prod(x, z, resulttwo);int resultthree[100];Prod(w, y, resultthree);n1 = LLength(resulttwo);n2 = LLength(resultthree);digit = Maxchoice(n1, n2);int arrayhap_one[100];ArrayHap(resulttwo, resultthree, arrayhap_one);//10에 m제곱.....0만을 배열에 추가한다.for(i = 0; arrayhap_one[i] != EndOfDisit; ++i);for(j = 0; j < m; ++j){arrayhap_one[i] = 0;++i;}arrayhap_one[i] = EndOfDisit;int resultfour[100];//초기화for(i = 0; i < (2 * digit); ++i)resultfour[i] = 0;resultfour[i] = EndOfDisit;Prod(y, z, resultfour);ArrayHap(resultone, arrayhap_one, % 2;if(n == 0)return FALSE;return TRUE;}void IntMul(int a[], int b[], int c[]){int xa = 0;int yb = 0;int ab = 0;int xx, yy, mok0, mok1, mok2, mok3;if( a[0] == EndOfDisit || b[0] == EndOfDisit){c[0] = EndOfDisit;return;}// 배열을 정수변수로....xx = LLength(a);if(xx == 1)xa = a[0];else{xa = a[1];for(int i = 0; i < a[0]; i++)xa = xa + 10;}yy = LLength(b);if(yy == 1)yb = b[0];else{yb = b[1];for(int i = 0; i < b[0]; i++)yb = yb + 10;}ab = xa * yb;// 숫자 0을 곱할 경우....처리..if(ab != 0){// 정수 변수를 배열로.....mok0 = ab/1000;mok1 = ab/100;mok1 = mok1 % 10;mok2 = ab/10;mok2 = mok2 % 100;mok2 = mok2 % 10;mok3 = ab;mok3 = mok3 % 1000;mok3 = mok3 % 100;mok3 = mok3 % 10;if(mok0 != 0){c[0] = mok0;c[1] = mok1;c[2] = mok2;c[3] = mok3;c[4] = EndOfDisit;}elseif(mok1 != 0){c[0] = mok1;c[1] = mok2;c[2] = mok3;c[3] = EndOfDisit;}elseif(mok2 != 0){c[0] = mok2;c[1] = mok3;c[2] = EndOfDisit;}elseif(mok3 != 0){c[0] = mok3;c[1] = EndOfDisit;}}elsec[0] = EndOfDisit;}void ArrayHap(int a[], int b[], int c[]){int alen, blen, differeturn;}elseif(blen == 0){for(i=0; i < alen; ++i)c[i] = a[i];c[i] = EndOfDisit;return;}if(alen >= blen){differ = alen - blen;for(i = (alen - 1); i >= differ; --i){abhap = a[i] + b[i-differ] + carry;carry = abhap / 10;abrem = abhap % 10;c[i+1] = abrem;}if(carry == 0){if(differ != 0){for(i = (differ-1); i >= 0; --i)c[i+1] = a[i];for(i = 0; i < alen; ++i)c[i] = c[i+1];c[i] = EndOfDisit;}else{for(i = 0; i < alen; ++i)c[i] = c[i+1];c[alen] = EndOfDisit;}}else{for(i = (differ - 1); i >= 0; --i){abhap = a[i] + carry;carry = abhap / 10;abrem = abhap % 10;c[i+1] = abrem;}if(carry == 1){c[0] = carry;c[alen + 1] = EndOfDisit;}else{for(i = 0; i < alen; ++i)c[i] = c[i+1];c[i] = EndOfDisit;}}}else{differ = blen - alen;for(i = (blen -1); i >= differ; --i){abhap = b[i] + a[i-differ] + carry;carry = abhap / 10;abrem = abhap % 10;c[i+1] = abrem;}if(carry == 0){for(i = (differ-1); i >= 0; --i)c[i+1] = b[i];for(i = 0; i < blen; ++i)c[i] = c[i+1];c[i] = EndOfDisit;}else{for(i = (differ-1); i >= 0; --i){abha}}}
    경영/경제| 2001.05.05| 13페이지| 1,000원| 조회(690)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    1
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 03월 31일 화요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
3:51 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감