后面我思考了一下,当value与第X位相减时,value必不可能大于x-1位,因此可以加一个变量用来记录位置,降低无效的循环次数;C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。可见改过之后的写法在整个值域(1-3999)内都优于原写法。字母从大到小依次排列,例如:8→XIII。最近遇到一个需要整数转罗马数字的问题。