Загрузка...

Help with code...

Thread in C/C++ created by Zakanal Mar 10, 2023. 419 views

  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 (3)
    2. Daemon
      lethe1337, все выводит нормально
      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"};

      for (int i = 4; number > 0 && i >= 0; --i) {
      int div = number / numList[i];
      number %= numList[i];
      while (div--)
      roman += symList[i];
      }

      return roman;
      }

      int main() {
      int number;
      cout << "введи число: ";
      cin >> number;
      cout << convertToRoman(number) << endl;
      }
    3. lethe1337
      Daemon, хм, возможно, повезло. тем не менее, надежнее использовать while(). вот пример с литкода
    4. Daemon
      lethe1337, так а там не куда for вставлять
    5. View the next comments (5)
Top
Loading...