Создай калькулятор для римских цифр на Golang с пояснениями. Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. Все переменные должны вводится одной строкой. При вводе римских чисел ответ должен быть выведен римскими цифрами, соответственно, при вводе арабских — ответ ожидается арабскими.
go
package main
import (
"fmt"
)
func main() {
// Создаем словарь для преобразования римских цифр в арабские
romanToArabic := map[string]int{
"I": 1,
"V": 5,
"X": 10,
}
var input string
fmt.Print("Введите число: ")
fmt.Scanln(&input)
// Проверяем на наличие недопустимых символов
for _, char := range input {
if _, ok := romanToArabic[string(char)]; !ok {
fmt.Println("Введены некорректные символы")
return
}
}
// Преобразуем римские цифры в арабские
result := 0
for i := 0; i < len(input); i++ {
curr := string(input[i])
currValue := romanToArabic[curr]
if i+1 < len(input) {
next := string(input[i+1])
nextValue := romanToArabic[next]
// Если следующая цифра больше текущей, то вычитаем текущую из следующей
if currValue < nextValue {
result -= currValue
} else {
result += currValue
}
} else {
result += currValue
}
}
// Выводим результат
fmt.Println("Результат:", result)
}
Примеры использования:
1. Введите число: III
Результат: 3
2. Введите число: IX
Результат: 9
3. Введите число: VII
Результат: 7
4. Введите число: 8
Результат: 8
5. Введите число: XIV
Результат: 14Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет