level 5
javran
楼主
Const MaxL = 2000 ;Type TIndex = Longint ; TNum = Record D : Array [ 0 .. MaxL ] Of TIndex ; L : TIndex ; End ; Var N : TIndex ; S : TNum ;Procedure Mul ( R : TIndex ) ; Var I , J : TIndex ; Begin For I := 1 To S.L Do S.D [ I ] := S.D [ I ]*R ; For I := 1 To S.L Do Begin Inc ( S.D [ I + 1 ] , S.D [ I ] Div 10 ) ; S.D [ I ]:= S.D [ I ] Mod 10 ; End ; If ( S.D [ S.L + 1 ] <> 0 ) Then Inc ( S.L ) ; While ( S.D [ S.L ] > 9 ) Do Begin Inc ( S.D [ S.L + 1 ] , S.D [ S.L ] Div 10 ) ; S.D [ S.L ]:= S.D [ S.L ] Mod 10 ; Inc ( S.L ) ; End ; End ;Procedure Init ; Begin Readln ( N ) ; End ;Procedure Main ; Var I : TIndex ; K : TIndex ; Begin K := N Div 3 ; S.D [ 1 ] := 1 ; S.L := 1 ; If ( N Mod 3 = 1 ) Then Dec ( K ) ; For I := 1 To K Do Mul ( 3 ) ; If ( N Mod 3 = 1 ) Then Mul ( 4 ) ; If ( N Mod 3 = 2 ) Then Mul ( 2 ) ; End ;Procedure Final ; Var I : TIndex ; Begin For I := S.L DownTo 1 Do Write ( S.D [ I ] ) ; Writeln ; End ;Begin Init ; Main ; Final ;End .
2007年09月08日 11点09分
1