Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Да се напише метод кој ќе прима еден цел број и ќе ја печати неговата репрезентација како Римски број.
- Пример: Aко ако се повика со парамететар 1998, излезот треба да биде MCMXCVIII.
- */
- import java.util.Scanner;
- import java.util.stream.IntStream;
- import java.lang.IllegalArgumentException;
- public class RomanConverterTest {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- IntStream.range(0, n)
- .forEach(x -> System.out.println(RomanConverter.toRoman(scanner.nextInt())));
- scanner.close();
- }
- }
- class RomanConverter {
- /**
- * Roman to decimal converter
- *
- * @param n number in decimal format
- * @return string representation of the number in Roman numeral
- */
- public static String toRoman(int n) {
- /* Greedy Algorithm */
- StringBuffer sb = new StringBuffer();
- int times = 0;
- String[] romans = new String[] { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M" };
- int[] integers = new int[] { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
- for (int i = integers.length - 1; i >= 0 ; i--) {
- times = n / integers[i];
- n %= integers[i];
- while (times > 0){
- sb.append(romans[i]);
- times--;
- }
- }
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement