Converting integers to roman numerals

前端 未结 29 2529
走了就别回头了
走了就别回头了 2020-12-02 09:16

I\'m trying to write a function that converts numbers to roman numerals. This is my code so far; however, it only works with numbers that are less than 400. Is there a quick

29条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-02 09:38

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Enter the number\n");
                int num = int.Parse(Console.ReadLine());
                ToRomanNumber tr = new ToRomanNumber();
                string opt=tr.ToRoman(num);
                Console.WriteLine(opt);
            }
        }
        class ToRomanNumber
        {
            string s = "";
    
            public string ToRoman(int number)
            {
    
                if ((number < 0) || (number > 3999))
                {
                    s = s + "Invalid Input";
                }
                if (number < 1) return s;
                if (number >= 1000) { s = s + "M"; ToRoman(number - 1000);}
                if (number >= 900){ s = s + "CM";ToRoman(number - 900);}
                if (number >= 500){ s = s + "D"; ToRoman(number - 500);}
                if (number >= 400){ s = s + "CD"; ToRoman(number - 400);}
                if (number >= 100){ s = s + "C"; ToRoman(number - 100);}
                if (number >= 90){ s = s + "XC"; ToRoman(number - 90);}
                if (number >= 50){ s = s + "L";ToRoman(number - 50);}
                if (number >= 40){ s = s + "XL";ToRoman(number - 40);}
                if (number >= 10){ s = s + "X"; ToRoman(number - 10); }
                if (number >= 9) { s = s + "IX"; ToRoman(number - 9); }
                if (number >= 5) { s = s + "V"; ToRoman(number - 5); }
                if (number >= 4) { s = s + "IV"; ToRoman(number - 4); }
                if (number >= 1) { s = s + "I"; ToRoman(number - 1);}
                return s;
            }
        }
    }
    

提交回复
热议问题