정밀 압축 네
이유 : 큰 정수 연산을 달성하기 위해 특정 4 자리 계산 방법의 사용에 관한 모든 입금 배열을 생성;
포장 구조체에서;
현재, 단 정밀도 + 정밀 고정밀 단 정밀도 * 맥스 (고정밀 고정밀);
코드 :
// 정밀 네 압축 =========================================== ===== CONST INT M = 85 , MOD = 10000 ; 구조체 는 HP { INT의 P [ 505 ], 렌 은 HP () { memset 함수 (P, 0 , sizeof의 (P)); 렌 = 0 ; } // 초기화 정밀 가변 공극 put_out () { // 출력 의 printf ( " %의 D ' , P [LEN]) 대 ( INT I = LEN 1. , I> 0 ; 난 ...) { 경우 (p [I] == 0 ) { 의 printf ( " 0000 " ); 계속 ; } 대 ( INT K = 10 ; K * P [I] <개조 K * = 10 의 printf) ( " 0 " ); 의 printf ( " %의 D ' , P [I]); } } } (F)는 [M]을 [M] 기재 [M]을 ans와; // 高精+高精O (LEN) HP 연산자 + ( CONST HP & A CONST HP 및 b) { HP의 C; c.len = 최대 (a.len, b.len); INT (X) = 0 ; 위한 ( INT 난 = 1 ; I <= c.len I ++ ) { CP [I] = AP에 [I] + BP [I] + (X); X = CP [I] / 개조; CP [I] % = 개조; } 경우 (x> 0 ) CP [++ c.len] = X; 반환 C를; 이} // 高精*单精O (LEN) HP 연산자 (* CONST HP & A CONST INT 및 {b) HP의 C; c.len= a.len; INT (X) = 0 ; 위한 ( INT 난 = 1 ; I <= c.len I ++ ) { CP [I] = AP에 [I] * B + X; X = CP [I] / 개조; CP [I] % = 개조; } 동안 (x> 0 ) { CP [ ++ c.len = X % 개조; X / = 개조; } 리턴 C 단계; } // 최대高精 HP 맥스 ( CONST HP & A CONST HP 및 b) { 경우 (a.len> b.len) 반환 단계; 경우 (a.len < b.len) 리턴 B; 위한 ( INT , I> I = a.len 0 ; 난 ... ) { 경우 (AP [I] " BP [I]) 반환 단계; 경우 (AP [I] < BP [I]) 리턴 B; } 반환 을; } // =============================================== =