[Javran][Code]整数最优分解问题
javran吧
全部回复
仅看楼主
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
level 5
javran 楼主
试题一、整数最优分解问题 (本题满分50分)源程序:integer.pas/integer.c/integer.cpp问题描述:设n是一个正整数。现要求将n分解为若干个自然数的和,且使这些自然数的乘积最大。编程任务:对于给定的正整数n,编程计算最优分解方案。数据输入:由文件input.txt提供输入数据。文件的第1行是正整数n。结果输出:程序运行结束时,将计算出的最大乘积输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt1036
2007年09月08日 11点09分 2
level 5
javran 楼主
@echo offif "%1"=="" goto loop1code <1t%1.in >tmp.outfc tmp.out 1t%1.out >>Result.Txtgoto end:loop1for %%i in ( 1,2,3,4,5,6,7,8,9,10 ) do @%0 %%i:end@echo on@echo Test %1 Done.@echo off
2007年09月08日 11点09分 3
level 5
javran 楼主
Result.Txt:正在比较文件 tmp.out 和 1T1.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T2.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T3.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T4.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T5.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T6.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T7.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T8.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T9.OUTFC: 找不到相异处正在比较文件 tmp.out 和 1T10.OUTFC: 找不到相异处
2007年09月08日 11点09分 4
level 5
javran 楼主
一次编译通过,由于数据范围估计不足,导致部分Wrong Answer.原MaxL=1000
2007年09月08日 11点09分 5
1