SRM過去問 SRM483 Div1Easy
せっかくなので昨日のDiv1Easy解いてみました。
どうやらC++ではいろいろ大変だったみたいですがJavaだといろいろと楽でした。
(double->Stringが使える)最後に"0000000000"ってたくさん追加しないといけないですね。
public class BestApproximationDiv1{ public String findFraction(int a,String b){ int max=0; int maxB=0; int maxC=0; for(int i=1;i<=a;i++){ for(int j=0;j<i;j++){ double takeshi=(double)j/(double)i; String kiyoto=String.valueOf(takeshi); kiyoto+="0000000000000"; int sames=0; for(int k=0;k<Math.min(kiyoto.length(),b.length());k++){ if(kiyoto.charAt(k)==b.charAt(k))sames++; else break; } if(max<sames-1){ max=sames-1; maxB=i; maxC=j; } } } System.out.println(21.0/50.0); return maxC+"/"+maxB+" has "+max+" exact digits"; } }
これで228.05pt。やっぱりJava結構便利。