码迷,mamicode.com
首页 > 其他好文 > 详细

进制问题

时间:2016-04-07 22:18:30      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

leetCode上有这么一道题

Excel Sheet Column Title

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 

分析之后可知是一道进制转换的问题,分析的时候偶然间想到digital root的问题,digital root有统一的表达式,是一个9进制问题的转换,如下:

  • dr(n) = 1 + (n - 1) % 9

而此题呢,也很类似,因为字符从A到Z分别代表1到26时,就是26进制,但是没有0,所以我们也可以将数字减1处理,像是错位一般,一切秩序便井然有序了:

 1 public class Solution {
 2     public String convertToTitle(int n) {
 3         int remainder = 0;
 4         String result = "";
 5         while(n!= 0){
 6             remainder = (n - 1) % 26;
 7             n = (n - 1) / 26;
 8             result = (char)(‘A‘ + remainder) + result;
 9         }
10         return result;
11     }
12 }

进制问题

标签:

原文地址:http://www.cnblogs.com/vin-yuan/p/5365699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!