Загрузка...

Help with code...

Thread in C/C++ created by Zakanal Mar 10, 2023. 401 view

  1. Zakanal
    Zakanal Topic starter Mar 10, 2023 79 Oct 17, 2022
    Нужно составить программу на C++, которая по введенному числу (до 10) выдавала бы соответствующую ей римскую цифру. Помогите:meow2:
     
  2. Vodafit
    Vodafit Mar 10, 2023 8 Dec 29, 2021
    Code
    #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. View previous comments (1)
    2. Console
  3. JEYNI
    JEYNI Mar 10, 2023 39 Aug 26, 2021
     
  4. Daemon
    Daemon Mar 10, 2023 1680 Jan 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;
    }
     
  5. lethe1337
    lethe1337 Mar 23, 2023 7 May 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. View previous comments (8)
    2. lethe1337
      Daemon, даже если и можно, правильнее будет использовать while(). я самоучка, и с такими тонкостями есть проблемы. я помню, что должен быть while(), т.к. решал подобную задачу, но конкретно объяснить не могу.
    3. Daemon
      lethe1337, что значит должен быть... по-разному можно написать, и если вы не знали, то циклом for можно заменить любой другой цикл
    4. lethe1337
      Daemon, справедливо. признаю, можно использовать for().
Loading...
Top