Advertisement
Nikolovska

[НП] лаб1.1 Римски броеви

Jun 1st, 2018
1,255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.65 KB | None | 0 0
  1. /* Вовед во Java и класи (1)
  2. Римски броеви Problem 1 (1 / 5)
  3. Да се напише метод кој ќе прима еден цел број и ќе ја печати неговата репрезентација како Римски број.
  4.  
  5. Пример
  6.  
  7. Aко ако се повика со парамететар 1998, излезот треба да биде MCMXCVIII.*/
  8.  
  9. import java.util.Scanner;
  10. import java.util.stream.IntStream;
  11.  
  12. public class RomanConverterTest {
  13.     public static void main(String[] args) {
  14.         Scanner scanner = new Scanner(System.in);
  15.         int n = scanner.nextInt();
  16.         IntStream.range(0, n)
  17.                 .forEach(x -> System.out.println(RomanConverter.toRoman(scanner.nextInt())));
  18.         scanner.close();
  19.     }
  20. }
  21.  
  22.  
  23. class RomanConverter {
  24.     /**
  25.      * Roman to decimal converter
  26.      *
  27.      * @param n number in decimal format
  28.      * @return string representation of the number in Roman numeral
  29.      */
  30.     public static String toRoman(int n) {
  31.         // your solution here
  32.        
  33.         StringBuilder sb = new StringBuilder();
  34.         String[] romaan = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
  35.         int[] arabic = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
  36.         int tmp;
  37.         for (int i=0; i<arabic.length; i++){
  38.             if (n >= arabic[i]){
  39.                 tmp = n/arabic[i];
  40.                 n -= tmp*arabic[i];
  41.                 while (tmp>0){
  42.                     sb.append(romaan[i]);
  43.                     tmp--;
  44.                 }
  45.             }
  46.         }
  47.         return sb.toString();      
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement