经典算法:转换罗马数字
数字变成罗马数字
http://www.nowcoder.com/questionTerminal/0636c3db0de6437a8a86e58f46aa5c90
import java.util.*;
public class Solution {
/**
*
* @param num int整型
* @return string字符串
*/
public String intToRoman (int num) {
// write code here
StringBuffer str = new StringBuffer();
int arr[] = {1,4,5,9,10,40,50,90,100,400,500,900,1000};
String starr[]=new String[]{"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
for(int i = arr.length - 1;i >= 0;){
if(num >= arr[i]){
str.append(starr[i]);
num = num - arr[i];
}else {
i--;
}
}
return str.toString();
}
}比较经典的编程题,对于这里利用枚举法,两个数组长度相同,然后再for循环这里利用率从来没见过的方法就是少了i--,没有了i--这个条件for是无限循环的所以要在for中加上i--,这样就能保证循环的有限性。非常经典的题目,又学到了新东西哈哈。当时是没有思路的,是当算通过整除的方式来计算,但是这样下来真的比较麻烦,而且整体的代码我也没有想到,所以借鉴了一下题解的代码,学到了新方法。
