Загрузка...

Помогите с кодом...

Тема в разделе C/C++ создана пользователем Zakanal 10 мар 2023. 404 просмотра

  1. Zakanal
    Zakanal Автор темы 10 мар 2023 79 17 окт 2022
    Нужно составить программу на C++, которая по введенному числу (до 10) выдавала бы соответствующую ей римскую цифру. Помогите:meow2:
     
  2. Vodafit
    Vodafit 10 мар 2023 8 29 дек 2021
    Код
    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
    int number;
    cout << "Введите число от 1 до 10: ";
    cin >> number;

    string romanNumeral = ""; // создаем пустую строку-результат

    // создаем массивы для хранения римских цифр и их эквивалентов в десятичной системе счисления
    int decimal[] = { 10, 9, 5, 4, 1 };
    string roman[] = { "X", "IX", "V", "IV", "I" };

    // проходим по массивам и добавляем соответствующие римские цифры в строку-результат
    for (int i = 0; i < 5; i++)
    {
    while (number >= decimal[i])
    {
    romanNumeral += roman[i];
    number -= decimal[i];
    }
    }

    // выводим римскую цифру на экран
    cout << romanNumeral << endl;

    return 0;
    }
    код не мой, на работоспособность не проверял
     
    1. Посмотреть предыдущие комментарии (1)
    2. Console
  3. JEYNI
    JEYNI 10 мар 2023 39 26 авг 2021
     
  4. Daemon
    Daemon 10 мар 2023 1680 8 янв 2021
    JEYNI Вот зачем хайды ставить?
    C
    #include <iostream>
    #include <string>
    using namespace std;

    void rim(string& result, int num){
    if(num > 0 && num < 10) {
    if(num < 4)
    for(int i = 0; i < num; ++i)
    result += 'I';
    else if (num == 4)
    result = "IV";
    else if (num == 9)
    result = "IX";
    else {
    result += 'V';
    rim(result, num-5);
    }
    }
    }

    int main(){
    int num;
    string result;
    cin >> num;
    rim(result, num);
    cout << result;
    return 0;
    }
     
    10 мар 2023 Изменено
  5. lethe1337
    lethe1337 23 мар 2023 7 14 май 2020
    C
    #include <iostream>
    using namespace std;

    string convertToRoman(int number) {
    string roman = "";
    int numList[] = {1, 4, 5, 9, 10};
    string symList[] = {"I", "IV", "V", "IX", "X"};
    int i = 4;
    while (number > 0 && i >= 0) {
    int div = number / numList[i];
    number %= numList[i];
    while (div--) {
    roman += symList[i];
    }
    i--;
    }
    return roman;
    }

    int main() {
    int number;
    cout << "введи число: ";
    cin >> number;
    cout << convertToRoman(number) << endl;
    return 0;
    }
     
    1. Посмотреть предыдущие комментарии (8)
    2. lethe1337
      Daemon, даже если и можно, правильнее будет использовать while(). я самоучка, и с такими тонкостями есть проблемы. я помню, что должен быть while(), т.к. решал подобную задачу, но конкретно объяснить не могу.
    3. Daemon
      lethe1337, что значит должен быть... по-разному можно написать, и если вы не знали, то циклом for можно заменить любой другой цикл
    4. lethe1337
      Daemon, справедливо. признаю, можно использовать for().
Загрузка...
Top