• Binary Search-483. Smallest Good Base


    For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1.

    Now given a string representing n, you should return the smallest good base of n in string format. 

    Example 1:

    Input: "13"
    Output: "3"
    Explanation: 13 base 3 is 111.
    

    Example 2:

    Input: "4681"
    Output: "8"
    Explanation: 4681 base 8 is 11111.
    

    Example 3:

    Input: "1000000000000000000"
    Output: "999999999999999999"
    Explanation: 1000000000000000000 base 999999999999999999 is 11.
    

    Note:

    1. The range of n is [3, 10^18].
    2. The string representing n is always valid and will not have leading zeros.
    
    
    public class Solution {
     2     public String smallestGoodBase(String n) {
     3         long num = Long.parseLong(n);
     4         int maxIndex = (int) (Math.log(num)/Math.log(2) + 1);
     5         for(int i = maxIndex; i >= 3; i--) {
     6             long base = (long)Math.pow(num, 1.0 / (i - 1)), sum = 1, cur = 1;
     7             for(int j = 1; j < i; j++) {
     8                 sum += (cur *= base);
     9             }
    10             if(sum == num) return String.valueOf(base);
    11             12         return String.valueOf(num - 1);
    13     }
    14 }
    
    
     
  • 相关阅读:
    cocos2d-x simpleGame 0
    cocos2d-x 下的HelloWorld
    cocos2d-x windows 配置
    算术入门之加减乘除
    计算摄氏温度
    输出倒三角图案
    厘米换算英尺英寸
    多文件模块的学生信息库系统
    GPS数据处理
    单词长度
  • 原文地址:https://www.cnblogs.com/msymm/p/8278216.html
Copyright © 2020-2023  润新知