Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
vindex
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 12
09.11.2013, 20:03  [ТС] 0

Запись числа римскими цифрами

09.11.2013, 20:03. Просмотров 4595. Ответов 18
Метки (Все метки)

Ответ

В общем готово. Заполняла ответ в 2 строки (левая и правая части записи числа), которые потом склеивала в ответе. Использовала счётчик, изначально равный 0, на всех заходах сравнивала его со входным десятичным числом, если счётчик >= введёного числа, то вычитала из счётчика вес текущей найденной максимальной цифры и писала саму цифру в левую строку, если счётчик на данный момент меньше входного числа, то вес текущей максимальной цифры к счётчику прибавляла, а цифру записывала в правую строку , единственное исключение - при первом заходе в цикл найдётся самая большая цифра, её я ставила в правую строку (ну чтобы при склейке эта цифра была посерёдке так сказать). При этом в конце каждого прохода из исходной строки удалялась только что обработанная цифра, цикл до тех пор, пока входная строка не станет пустой. Далее сравниваю счётчик с введённым изначально числом, если между ними можно ставить =, то склеиваю 2 строки и вывожу, если не равны, то вывожу "нельзя". Вроде правильно. Ваша методика сработала, спасибо. Даже для отрицательных вроде рябит.

Добавлено через 10 минут
Вот пример для CLLLLL и числа -150:
1) Счётчик=0 > -150, Счётчик = 0-100 (вес С) = -100, проход 1й, С пишем в правую подстроку выходной записи, во входной строке LLLLL, в правой C.
2) Счётчик -100>-150, Счётчик = -100-50=-150, L пишем в левую подстроку, во входной LLLL, в правой C, в левой L.
3) Счётчик -150=-150, Счётчик=-150-50=-200, L в левую подстроку, входная LLL, правая C, левая LL.
4) Счётчик -200<-150, Счётчик= -200+50=-150, L в правую подстроку, входная LL, правая CL, левая LL.
5) Счётчик -150=-150, Счётчик -150-50=-200, L в левую подстроку, входная L, правая CL, левая LLL.
6) Счётчик -200<-150, Счётчик -200+50=-150, L в правую подстроку, входная пустая, цикл завершается, правая CLL, левая LLL.
Сравниваем: -150=-150
Склеиваем: LLL-CLL, выводим LLLCLL.

Вернуться к обсуждению:
Запись числа римскими цифрами
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 20:03
Готовые ответы и решения:

для записи римскими цифрами...
Для записи римскими цифрами используются символы I, V, X, L, C, D, M...

Найти такие числа, запись которых совпадает с последними цифрами записи их квадратов
Дано натуральное число n. Среди чисел 1,..., n найти такие, запись которых...

Среди чисел 1,…,n найти все такие, запись которых совпадает с последними цифрами их куба
Дано натуральное число n. Среди чисел 1,…,n найти все такие, запись которых...

Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры
Найти все трехзначные числа, которые можно представить разностью между...

Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n
не решается задачка :с помогите, пожалуйста. все что смог, изложил. это...

18
Другие темы раздела
C# Вывод из консоли в форму http://www.cyberforum.ru/csharp-beginners/thread1001663.html
Добрый день. У меня есть приложение, которое выводит SMART инфо о диске в консоль. Хочется выводить все это в форму. Как это можно сделать ? С шарпом работаю меньше недели, ногами не пинать) ...
C# Создание новой директории Здраствуйте. Возник такой вопрос по директориям.Вот код: string path1 = @"D:\УПП\"; string myarray = new string { "2301", "2302", "2303", "2304", "2305", "2306", "2307", "2308", "2309", "2310",... http://www.cyberforum.ru/csharp-beginners/thread1001654.html
C# Разобрать строку regex
Есть строка string line = "1","C0805","C1","R0805","","0603-X7R-25V-N+-10%",""MuRata"",""Capacitor"","2.2uF" Можно ли её распарсить с помощью регулярных выражений по запятым? В строке могут...
C# Передать метод по сети и запустить его на удаленной машине
Нужно передать метод (в любой реализации - как делегат, или как-то по-другому) по сети и запустить его на удаленном компе. Трабла в том, что пишу на .Net 2.0 (чтобы программа смогла запустится на...
C# Получение разницы времени http://www.cyberforum.ru/csharp-beginners/thread1001534.html
Добрый день. Нужна ваша помощь. Решил написать в эту ветку, хотя может надо было в ветку с работой БД. Есть БД (Access). Из нее получаю два столбца - дата/время и данные. По ним строю график. Но...
C# Как вызвать методы класса из его конструктора Добрый день! Начал изучать язык, но столкнулся с проблемами(ответов в учебниках найти не смог): Имеется задача Нужно создать поле для игры в сапер(прямоугольный массив логических значений... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru