Форум программистов, компьютерный форум CyberForum.ru

Записать данное число (от 1 до 3999) римскими цифрами - C++

Восстановить пароль Регистрация
 
Дима Суслов
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 49
12.06.2014, 11:30     Записать данное число (от 1 до 3999) римскими цифрами #1
Написать программу,записывающую данное число в интервале от 1 до 3999 Римскими цифрами.
I – 1
V – 5
X – 10
L – 50
C – 100
D – 1000
В римском исчислении существует правило, что не пишут 4 подряд одинаковые цифры, поэтому 9 – IX, т.е. 10-1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
main()
{
  int n;
                cout<<"Введите число n= "; cin>>n;
 
                while (n != 0)
                {
                    if (n >= 1000) { n = n - 1000; cout<<"M"; }
                    else { 
                        if (n >= 900) { n = n - 900;   cout<<"MC; }
                        else if (n >= 500) { n = n - 500; cout<<"D"; }
                        else if (n >= 400) { n = n - 400; cout<<"CD"; }
                        else if (n >= 100) { n = n - 100; cout<<"C"; }
                        else if (n >= 90) { n = n - 90; cout<<"XC"; }
                        else if (n >= 50) { n = n - 50; cout<<"L"; }
                        else if (n >= 10) { n = n - 10; cout<<"X"; }
                        else if (n >= 9) { n = n - 9; cout<<"IX"; }
                        else if (n >= 5) { n = n - 5; cout<<"V"; }
                        else if (n >= 4) { n = n - 4; cout<<"IV"; }
                        else if (n >= 1) { n = n - 1; cout<<"I"; }
                         }
                }
}
Как сделать через while ?
Миниатюры
Записать данное число (от 1 до 3999) римскими цифрами  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 11:30     Записать данное число (от 1 до 3999) римскими цифрами
Посмотрите здесь:

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
Дано целое положительное число. Проверить истинность высказывания: «Данное число является четным двузначным» C++
C++ Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
C++ Разработать программу, которая заданное целое число от 1 до 1999 выводит на экран римскими цифрами
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами C++
К четным элементам целочисленного массива прибавить данное число а, а из элементов с четными номерами вычесть данное число b. C++
C++ Записать число римскими цифрами
C++ Проверка текста на правильность записи числа от 1 до 1999 римскими цифрами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tehnar5
31 / 31 / 12
Регистрация: 03.05.2011
Сообщений: 84
12.06.2014, 11:48     Записать данное число (от 1 до 3999) римскими цифрами #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
main()
{
  int n;
                cout<<"Введите число n= "; cin>>n;
 
                while (n != 0)
                {
                    while (n >= 1000) { n = n - 1000; cout<<"M"; }
                    else { 
                        while (n >= 900) { n = n - 900;   cout<<"MC; }
                        while (n >= 500) { n = n - 500; cout<<"D"; }
                        while (n >= 400) { n = n - 400; cout<<"CD"; }
                        while (n >= 100) { n = n - 100; cout<<"C"; }
                        while (n >= 90) { n = n - 90; cout<<"XC"; }
                        while (n >= 50) { n = n - 50; cout<<"L"; }
                        while (n >= 10) { n = n - 10; cout<<"X"; }
                        while (n >= 9) { n = n - 9; cout<<"IX"; }
                        while (n >= 5) { n = n - 5; cout<<"V"; }
                        while (n >= 4) { n = n - 4; cout<<"IV"; }
                        while (n >= 1) { n = n - 1; cout<<"I"; }
                         }
                }
}
Понятное дело, что эта программа выведет корректное число, так как комбинации типа IX, IV, XC и тд будут выводиться максимум один раз
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
12.06.2014, 14:56     Записать данное число (от 1 до 3999) римскими цифрами #3
Перевод арабских чисел в римские
Yandex
Объявления
12.06.2014, 14:56     Записать данное число (от 1 до 3999) римскими цифрами
Ответ Создать тему
Опции темы

Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru