Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

숫자를 로마 숫자로


로마 숫자는 위치가 없는 숫자입니다. 일부 숫자는 함께 배치되어 로마 숫자로 된 숫자를 형성합니다. 예를 들어 숫자 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