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