• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ying_vincent
博客园    首页    新随笔    联系   管理    订阅  订阅

LeetCode: Integer to Roman

这题因为不知道罗马数是怎么一回事。。就去网上找了答案

 1 class Solution {
 2 public:
 3     string intToRoman(int num) {  
 4       // Start typing your C/C++ solution below  
 5       // DO NOT write int main() function    
 6       char symbol[7] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};
 7       int scale = 1000;
 8       string ret;
 9       for (int i = 6; i >= 0; i -= 2) {
10           int digit = num / scale;
11           if (digit != 0) {
12               if (digit <= 3) ret = ret + string(digit, symbol[i]);
13               else if (digit == 4) ret = ret + symbol[i] + symbol[i+1];
14               else if (digit == 5) ret = ret + symbol[i+1];
15               else if (digit <= 8) ret = ret + symbol[i+1] + string(digit-5, symbol[i]);
16               else if (digit == 9) ret = ret + symbol[i] + symbol[i+2];
17           }
18           num %= scale;
19           scale /= 10;
20       }
21       return ret;
22     }  
23 };

 C#

 1 public class Solution {
 2     public string IntToRoman(int num) {
 3         char[] sym = new char[7]{'I', 'V', 'X', 'L', 'C', 'D', 'M'};
 4         int scale = 1000;
 5         string ans = "";
 6         for (int i = 6; i >= 0; i-=2) {
 7             int digit = num / scale;
 8             if (digit != 0) {
 9                 if (digit <= 3) ans  = ans + new string(sym[i], digit);
10                 else if (digit == 4) ans = ans + sym[i] + sym[i+1];
11                 else if (digit == 5) ans = ans + sym[i+1];
12                 else if (digit <= 8) ans = ans + sym[i+1] + new string(sym[i], digit-5);
13                 else if (digit == 9) ans = ans + sym[i] + sym[i+2];
14             }
15             num %= scale;
16             scale /= 10;
17         }
18         return ans;
19     }
20 }
View Code

 

posted @ 2013-05-17 14:44  ying_vincent  阅读(137)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3