题解 | #牛牛的罗马数字转换#
牛牛的罗马数字转换
https://www.nowcoder.com/practice/d435f3b183e6496eb226613e9ed2aaa7?tpId=363&tqId=10625827&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型 * @return string字符串 */ public String intToRoman(int num) { int [] numbers = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < numbers.length; i++) { int value = numbers[i]; String str = symbols[i]; while (num >= value) { num -= value; stringBuilder.append(str); } if (num == 0) { break; } } return stringBuilder.toString(); } }
本题知识点分析:
1.数学模拟
2.字符串拼接
本题解题思路分析:
1.优先选择数值大的数字
2.while(num>=value)持续append对应的字符串
3.如果num==0表明可以退出循环
4.最后StringBuilder转字符串即可
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~