정밀 압축 네

정밀 압축 네 

이유 : 큰 정수 연산을 달성하기 위해 특정 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; 
    } 
    반환 을; 
} 
// =============================================== =

 

추천

출처www.cnblogs.com/geraldg/p/12424114.html