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

Узнай цену своей работы

Формулировка задачи:

Составить программу, которая в зависимости от введенной цифры (0, 1, ... ,9) выводит на экран ее римское представление. В паскале нашел, помогите перевести в С#
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.

Решение задачи: «Римское представление числа»

textual
Листинг программы
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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы