고밀도 계산 (대수 곱셈 법)

644 단어 ACM
높 은 정밀도 의 가감 연산 을 바탕 으로 실현 하 다.
높 은 정밀도 의 곱셈 연산 을 하려 면 먼저 쌓 인 자릿수 를 확정 하고 두 개의 수 를 'a, b' 로 설정 해 야 한다.LA 는 a 의 자릿수, LB 는 b 의 자릿수, 두 개의 곱 하기 최소 자릿수 는 LA + LB - 1 이다.만약 에 곱 한 후에 이 최소 위치 에 진 이 있 으 면 곱 하기 위 치 는 LA + LB 로 변 한다.
높 은 정밀도 의 곱셈 을 할 때 피 승수 와 곱셈 의 모든 숫자의 곱셈 을 계산 해 야 한다. 그 중에서 a [i] * b [j] 의 축적 을 배열 C [i + j] 에 추가 한 다음 에 누적 결과 c 에 대해 일회 성 진 위 를 해 야 한다.
프로그램 은 다음 과 같 습 니 다:
for(int i = 0; i <= LA - 1;i++)//         c  
	for(int j = 0; j <= LB - 1;j++)
		c[i + j] += a[i]*b[j];
for(int i = 0; i < LA + LB;i++)//      
{
	if(c[i] >= 10)
	{
		c[i + 1]+= c[i]/10;
		c[i] %= 10;
	}
}
 

좋은 웹페이지 즐겨찾기