|
|
back to boardSample numbers have different value of math.sqrt() in last digit. Why? This task is not so big level for hidden problem. sample result: 2297.0716 936297014.1164 0.0000 37.7757 my result: 2297.0715 936297024.0000 0.0000 37.7757 import java.io.PrintWriter; import java.util.Scanner; import java.util.*; public class AlgorithmTAsk { public static void main(String[] arg){ Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); ArrayList<Float> f = new ArrayList<Float>(); while (in.hasNextLong()) { f.add((float) Math.sqrt(in.nextLong())); } for(int i = f.size()-1;i>=0;i--){ out.printf("%8.6f\n",f.get(i)); } out.flush(); } } Edited by author 19.04.2016 19:45 Try double instead of float import java.util.Scanner; import java.text.DecimalFormat; import java.lang.StringBuffer; import java.lang.Math; public class Timus2{ public static void main(String[] args){ Scanner S = new Scanner(System.in); DecimalFormat df = new DecimalFormat("#.0000"); StringBuffer result = new StringBuffer(); while(S.hasNext()){ result.append(df.format(Math.sqrt(S.nextDouble())) + "\n"); } S.close(); System.out.println(result); } } 1) Any advantages of using "StringBuffer result"? Is it really faster then just print result line by line? 2) Show here expected output, your program output, compare. |
|
|