Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Giúp em giải bài tập này với ạ

14:37 28-10-2017 428 lượt xem 1 bình luận 13:35 29-10-2017

Viết hàm chuyển đổi 1 số nguyên thành số Lã Mã. Ví dụ: truyền vào 2017 thì hàm trả ra là MMXVII.

Hàm có nguyên mẫu hàm là static string IntToRoman(int num)

Giá trị truyền vào đảm bảo trong phạm vi từ 1 đến 3999.

Em cảm ơn ạ

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
hnguyen đã bình luận 13:35 29-10-2017
static string IntToRoman(int number)
        {
            if ((number < 0) || (number > 3999)) throw new ArgumentOutOfRangeException("Nav");
            if (number < 1) return string.Empty;
            if (number >= 1000) return "M" + IntToRoman(number - 1000);
            if (number >= 900) return "CM" + IntToRoman(number - 900); //EDIT: i've typed 400 instead 900
            if (number >= 500) return "D" + IntToRoman(number - 500);
            if (number >= 400) return "CD" + IntToRoman(number - 400);
            if (number >= 100) return "C" + IntToRoman(number - 100);
            if (number >= 90) return "XC" + IntToRoman(number - 90);
            if (number >= 50) return "L" + IntToRoman(number - 50);
            if (number >= 40) return "XL" + IntToRoman(number - 40);
            if (number >= 10) return "X" + IntToRoman(number - 10);
            if (number >= 9) return "IX" + IntToRoman(number - 9);
            if (number >= 5) return "V" + IntToRoman(number - 5);
            if (number >= 4) return "IV" + IntToRoman(number - 4);
            if (number >= 1) return "I" + IntToRoman(number - 1);
            throw new ArgumentOutOfRangeException("Nav");
        }

 

Câu hỏi mới nhất