Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Ден23
0 / 0 / 1
Регистрация: 10.01.2017
Сообщений: 7
1

Римское представление числа

24.01.2017, 19:50. Просмотров 810. Ответов 2
Метки нет (Все метки)

Составить программу, которая в зависимости от введенной цифры (0, 1, ... ,9) выводит на экран ее римское представление.

В паскале нашел, помогите перевести в С#
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var n:integer;
a,b,c,d,f,h,q,s,w,r:string;
begin
writeln('ââåäèòå ÷èñëî');
readln(n);
case n mod 10 of
1:a:='I';
2:a:='II';
3:a:='III';
4:a:='IV';
5:a:='V';
6:a:='VI';
7:a:='VII';
8:a:='VIII';
9:a:='IX';
end;
b:='X';
c:='L';
d:='C';
case n mod 100 of
10..19:q:=b+a;
20..29:q:=b+b+a;
30..39:q:=b+b+b+a;
40..49:q:='IL'+a;
50..59:q:=c+a;
60..69:q:=c+b+a;
70..79:q:=c+b+b+a;
80..89:q:=c+b+b+b+a;
90..99:q:='IC'+a;
else q:=a;
end;
s:='D';
case n mod 1000 of
100..199:f:=d+q;
200..299:f:=d+d+q;
300..399:f:=d+d+d+q;
400..499:f:='ID'+q;
500..599:f:=s+q;
600..699:f:=s+d+q;
700..799:f:=s+d+d+q;
800..899:f:=s+d+d+d+q;
900..999:f:='IM'+q;
else f:=q;
end;
w:='M';
case n mod 4000 of
1000..1999:r:=w+f;
2000..2999:r:=w+w+f;
3000..3999:r:=w+w+w+f;
else r:=f;
end;
writeln(r);
 end.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2017, 19:50
Ответы с готовыми решениями:

Преобразование арабского числа в римское - в чем ошибка?
программа простая, перевести арабские числа в римские, но ошибка использования...

Преобразовать римское число в целое
Вводится строка. Если она является записью римского числа, то преобразовать ее...

Словесное представление числа
как например из чилcа 288456,25 сделать 'двести восемьдесятвосемь тысяч...

Двоичное представление числа
Доброго времени суток =) Суть проблемы: есть текстбокс, туда пользователь...

Из битов в двоичное представление числа
У меня есть класс для работы с битовыми массивами. Не получается сделать метод...

2
Людвиг Бодмер
357 / 356 / 211
Регистрация: 29.03.2013
Сообщений: 867
Завершенные тесты: 4
24.01.2017, 21:03 2
Ден23, можно и не переводить с Паскаля: http://stackoverflow.com/questions/7...roman-numerals
0
ata
270 / 242 / 186
Регистрация: 28.10.2015
Сообщений: 709
25.01.2017, 04:14 3
Лучший ответ Сообщение было отмечено Ден23 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Text;
 
public class Program
{
    private static int[] arabic = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
    private static string[] roman = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
    
    public static void Main()
    {
        int n = 2017;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; n > 0; i++)
        {
            int d = Math.DivRem(n, arabic[i], out n);
            while (d-- != 0) sb.Append(roman[i]);
        }
        Console.WriteLine(sb);
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2017, 04:14

64х битное представление числа
64 битное число HEX: 0xFFFFFFFF (младшие) FFFFFFFF (старшие) Как записать 64...

Представление числа с фиксированным набором знаков
Хочется пополняемый список с числами)) Числа должны быть обязательно с 5...

Представление числа в двоичной системе счисления
Можете объяснить как люди выражают цифры в двоичном системе счисления к примеру...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru