Convert the integer to the roman number.
Example 1:
Input : n=58
Output: LVIII
Approach:
Java
public class IntegerToRoman {public static void main(String[] args) {int num = 58;String roman = intToRoman(num);System.out.println(roman);}// integer to romanprivate static String intToRoman(int num) {String[] thousands = { "", "M", "MM", "MMM" };String[] hundreds = { "", "C", "CC", "CCC", "CD","D", "DC", "DCC", "DCCC", "CM" };String[] tens = { "", "X", "XX", "XXX", "XL", "L","LX", "LXX", "LXXX", "XC" };String[] units = { "", "I", "II", "III", "IV", "V","VI", "VII", "VIII", "IX" };String result = thousands[num / 1000] +hundreds[(num % 1000) / 100] + tens[(num % 100) / 10]+ units[num % 10];return result;}}
C++
#include <bits/stdc++.h>using namespace std;//function to convert integer to//roman numberstring intToRoman(int num){string res="";while(num>0){if(num>=1000){int x=num/1000;for(int i=0;i<x;i++)res+='M';num=num%1000;}else if(num>=900){res+='C';res+='M';num=num%100;}else if(num>=500){int x=num/100;res+='D';for(int i=6;i<=x;i++)res+='C';num=num%100;}else if(num>=400){res+='C';res+='D';num=num%100;}else if(num>=100){int x=num/100;for(int i=1;i<=x;i++)res+='C';num=num%100;}else if(num>=90){res+='X';res+='C';num=num%10;}else if(num>=50){int x=num/10;res+='L';for(int i=6;i<=x;i++)res+='X';num=num%10;}else if(num>=40){res+='X';res+='L';num=num%10;}else if(num>=10){int x=num/10;for(int i=1;i<=x;i++)res+='X';num=num%10;}else if(num==9){res+='I';res+='X';num=0;}else if(num>=5){int x=num/5;res+='V';for(int i=6;i<=num;i++)res+='I';num=0;}else if(num==4){res+='I';res+='V';num=0;}else{for(int i=1;i<=num;i++)res+='I';num=0;}}return res;}int main(){int num=58;string roman=intToRoman(num);cout<<roman<<"\n";return 0;}
No comments:
Post a Comment