로마 숫자는 위치가 없는 숫자입니다. 일부 숫자는 함께 배치되어 로마 숫자로 된 숫자를 형성합니다. 예를 들어 숫자 75는 75 =50 + 10 + 10 + 5로 표현될 수 있으므로 로마 숫자는 LXXV입니다.
이 문제에서는 하나의 숫자가 10진수 형식으로 제공되며 우리의 임무는 이를 로마 숫자 문자열로 변환하는 것입니다.
이와 같이 다양한 기호와 값이 있습니다.
나는 | IV | V | IX | X | XL | L | XC | C | CD | D | CM | M | MMMM | V' |
1 | 4 | 5 | 9 | 10 | 40 | 50 | 90 | 100 | 400 | 500 | 900 | 1000 | 4000 | 5000 |
이 표를 사용하여 주어진 숫자의 로마 숫자를 쉽게 찾을 수 있습니다.
입력 및 출력
입력:10진수:3569출력:3569에 해당하는 로마자는 다음과 같습니다. MMMDLXIX
알고리즘
decToRoman(nuList, num)
입력: 값이 있는 숫자 목록, 로마자로 변환할 숫자입니다.
출력: 주어진 숫자에 대한 로마 숫자입니다.
num ≠ 0인 경우 시작, max :=최대 숫자 값 가져오기, number보다 크지 않은 숫자 표시 nuList[max].symbol num :=num – nuList[max].value decToRoman(nuList, num)End사전>예시
#includenamespace std;struct number { string sym; int val;};int maxNume(숫자 nu[], int num) { 정수 인덱스; for(int i =0; i<15; i++) //배열의 숫자 15개 if(nu[i].val<=num) index =i; // gretest 값 숫자 인덱스, 숫자보다 크지 않음 return index;}void decToRoman(numeral nu[], int num) { int max; if(숫자 !=0) { 최대 =최대숫자(숫자, 숫자); cout < > 번호; if(number>0 &&number <=5000) { //입력 숫자 확인 cout<<"" < 출력
10진수 입력:35693569에 해당하는 로마자:MMMDLXIX