나는 이것을하는 방법을 알고 있으며 과거에는 그런 프로그램을 만들었지 만, 로마 숫자의 특별한 경우 (예 : IV = 4)를 통합하지는 못했습니다. 기능적인 프로그램에 최소한의 방법으로 통합하는 것이 주요한 문제입니다. 이것을 할 수있는 좋은 방법이 있습니까?C++ : 십진법과 로마식 숫자 변환
-2
A
답변
1
매우 간단한 솔루션, 의사 코드에서이 같은 것을 볼 수 있었다 :
value = get_the_value_to_convert();
divider = 1000; // Start at 1000 (M)
while (value > 0)
{
count = value/divider;
value = value % divider;
for (i = 0; i < count; ++i)
print(roman_numeral_from_number(divider));
divider /= 10;
}
roman_numeral_from_numbe
함수는 숫자와 로마 숫자 사이에 일대일 매핑을 수행합니다.
예 : 5432
을 입력하면 MMMMMCCCCXXXII
이 인쇄됩니다.
더 나은 결과를 얻으려면 divider
변수를 2
및 5
으로 두 번 씩 나누십시오.
더 나은 결과를 얻으려면 90
이 "XC"
과 같은 특정 숫자가 있는지 확인하십시오.
수정 한 경우에도 위의 알고리즘은 매우 큰 숫자를 처리 할 수 없지만 다른 한편으로는 Wikipedia은 역사적으로 작은 숫자로만 사용되었다고 명시합니다.
관련 문제
- 1. 십진법과 분수
- 2. C# : 숫자 변환 문제
- 3. C# 숫자 및 문자로 문자열 변환/분할
- 4. C++, x 숫자 시스템에서 십진수로 변환
- 5. C++ 인라인 문자열 서식 및 숫자 변환
- 6. 숫자/정수로 식별하여 변환
- 7. 문자열을 숫자 값으로 변환
- 8. 아랍어 숫자 값으로 변환
- 9. 변환 숫자 형식
- 10. 숫자 변환 문자열
- 11. guids를 숫자 값으로 변환
- 12. 숫자 변환 문제
- 13. 숫자 변환 및 연결
- 14. ggplot의 숫자 틱으로 변환
- 15. Ipv6에서 Java로 숫자 변환
- 16. 문자열을 숫자 값으로 변환
- 17. 파이썬 변환 문자 숫자
- 18. SQL Server 숫자 변환
- 19. 변환 열 숫자 값
- 20. 숫자 문자열을 정수로 변환
- 21. 숫자 변환 오류 8
- 22. 큰 숫자 변환 문제
- 23. datetime을 숫자 표현으로 변환
- 24. PHP의 숫자 변환
- 25. 숫자 형식 변환 (coldfusion)
- 26. 숫자 변환 알고리즘?
- 27. 숫자 형식으로 시간 변환.
- 28. 숫자 배열을 문자로 변환 ruby
- 29. tsql에서 varbinary를 숫자 유형으로 변환
- 30. Freemarker에서 숫자 값을 문자열로 변환
[읽는 방법] (http://en.wikipedia.org/wiki/Roman_numerals#Reading_Roman_numerals)을 알고 있다면 쉽게 만들 수 있습니다. 그것은 단지 division, modulo 및 in 루프는 특정 문자열을 다른 문자열로 연결하는 문자열입니다. –
네,하지만 그 예가 무엇입니까? 나는 그들에게 읽어주는 법을 안다. 특별한 경우를 적용하는 것은 어렵다. 나는 그 과정을 지나치게 생각하고있을 뿐이지 만, 나는 무엇을해야할지 알고 싶어한다. @JoachimPileborg에 질문 할 수 있다면 구현 방법은 무엇입니까? – T145
모든 하나 및 두 자리 숫자 및 그 값의 표를 사용하면 M (1000)에서 I (1)로 변환하여 첫 번째 값> = 변환하려는 값을 검색 할 수 있습니다. 해당 문자열을 결과에 연결하고 해당 값을 뺍니다. 반복. – molbdnilo