Remove 9
来源:互联网 发布:查分数的软件 编辑:程序博客网 时间:2024/04/28 00:28
题目:
Start from integer 1, remove any integer that contains 9 such as 9, 19, 29…
So now, you will have a new integer sequence: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, …
Given a positive integer n, you need to return the n-th integer after removing. Note that 1 will be the first integer.
Example 1:
Input: 9
Output: 10
咋看这道题目,有点没思路,要遍历数字再删除是不可能的。再一思索,诶,这就是9进制的题呀,然后一个数咋转为9进制呢,我的想法是这样的。
public int decimalToNovenary(int n) { int answer = 0; int base = 1; while (n > 0) { answer += n % 9 * base; n /= 9; base = (base<<3) +(base<<1); } return answer; }
代码解释:
answer += n%9*base;
(n%9)为得到该位的值,再乘以该位对应的基数,则得到该位实际的值,比如:
对于十进制,十位为2,20则为该位实际的值,2为该位的值,十为该位对应的基数。再加上answer,就是加上个位的值,得到的就是最后答案了。
n /= 9;//n记录这个数的位数和该位的值
base = (base<<3) +(base<<1);//*10,每进一位,该位对应的基数
以此类推,以后求其他进制也很好求啦。
阅读全文
0 0
- Remove 9
- 660. Remove 9
- leetcode 660. Remove 9
- remove
- remove
- remove
- remove
- remove
- remove
- Remove
- Remove
- remove
- REMOVE
- Remove
- remove
- remove
- remove()
- Remove
- Angular 4.0_在线竞拍网站(4)
- 输入子系统
- 基础MySQL笔记
- Confluence数据迁移及升级(5.9.0升级到6.1.0)
- 如何使用TrueCrypt加密
- Remove 9
- js创建自定义对象的几种方式
- 获取position的top、left
- 中文扩增子分析视频教程推荐
- hibernate--入门
- Java 判断字符串是否相同(递归)
- 【笔记】设计模式 简单工厂模式
- [java]选择排序
- Windows AD域用户属性对照表(综合整理)