큰 정수 곱셈 프로그램
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

= 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, cc);
ArrayHap(cc, resultfour, cc);
}
int LLength(int a[])
{
for(int i = 0; a[i] != EndOfDisit; ++i);
return i;
}
int Maxchoice(int c, int d)
{
if(c < d)
return d;
return c;
}
bool Odd(int f)
{
int n;
n = f % 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;
}
else
if(mok1 != 0)
{
c[0] = mok1;
c[1] = mok2;
c[2] = mok3;
c[3] = EndOfDisit;
}
else
if(mok2 != 0)
{
c[0] = mok2;
c[1] = mok3;
c[2] = EndOfDisit;
}
else
if(mok3 != 0)
{
c[0] = mok3;
c[1] = EndOfDisit;
}
}
else
c[0] = EndOfDisit;
}
void ArrayHap(int a[], int b[], int c[])
{
int alen, blen, differ;
int carry = 0;
int abhap, abrem;
int i;
alen = LLength(a);
blen = LLength(b);
if(alen == 0)
if(blen == 0)
{
c[0] = EndOfDisit;
return;
}
else
{
for(i = 0; i < blen; ++i)
c[i] = b[i];
c[i] = EndOfDisit;
return;
}
else
if(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)
{
abhap = b[i] + carry;
carry = abhap / 10;
abrem = abhap % 10;
c[i+1] = abrem;
}
if(carry == 1)
{
c[0] = carry;
c[blen + 1] = EndOfDisit;
}
else
{
for(i = 0; i < blen; ++i)
c[i] = c[i+1];
c[i] = EndOfDisit;
}
}
}
}

키워드

  • 가격2,000
  • 페이지수12페이지
  • 등록일2005.12.28
  • 저작시기2005.12
  • 파일형식한글(hwp)
  • 자료번호#329833
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니