mimizu #203(2007/07/05 16:25 GMT) [ Java ] Rating0/0=0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
import java.util.Map; import java.util.HashMap; public class Fraction { public static String toRepeatingDecimal(int numerator, int denominator) { Map<Integer, Integer> remainders = new HashMap<Integer, Integer>(); long d, q, r; int i = 0; StringBuffer sb = new StringBuffer(); d = denominator; r = numerator; q = r / d; r = r % d; remainders.put((int)r, i++); r *= 10; sb.append(q); if (r > 0) { sb.append('.'); do { q = r / d; r = r % d; sb.append(q); Integer index = remainders.get((int)r); if (index != null) { sb.insert(sb.length() - i + index, '{'); sb.append('}'); break; } remainders.put((int)r, i++); r *= 10; } while (r > 0); } return sb.toString(); } }
Rating0/0=0.00-0+
[ reply ]
mimizu
#203()
[
Java
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]