Римское представление числа - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д