zoukankan      html  css  js  c++  java
  • 483. 最小好进制 力扣 数学 hard

    题目描述:

    对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制。

    以字符串的形式给出 n, 以字符串的形式返回 n 的最小好进制。

    示例 1:

    输入:"13"
    输出:"3"
    解释:13 的 3 进制是 111。 

    题源:https://leetcode-cn.com/problems/smallest-good-base/

    注意点:

    string转longlong:stol(string)   

    string转int:stoi(string)

    string转float,转double: stof(string), stod(string)

    数字类型转string:to_string(num)

    开根号(非平方根),pow( , 1.0/m)

    题解:  

    class Solution {
    public:
        string smallestGoodBase(string n) {
         long long N=stol(n);
         int maxM=(int)(log(N*1.0)/log(2));
         long long k;
         for(int  m=maxM;m>0;m--)
         {
             k=(long long)pow(N,1.0/m);
            // long long s=(1-pow(k,m+1))/(1-k);
             long long s = 1, mul = 1;   // 计算 (11...11)k 对应的十进制值
                for (int i = 1; i <= m; ++i) {
                    mul *= k;
                    s += mul;
                }
    
             //printf("m=%d k=%lld s=%lld
    ",m,k,s);
             //if(m==6) {printf("%lld
    ",pow(k,m+1)); printf("%lld",k-1);}
             
             if (s==N) return to_string(k);
         }
         return to_string(N-1);
        }
    };

     

  • 相关阅读:
    vue学习
    BBS登录注册技术点归纳
    BBS项目模态框的使用
    django后台管理系统
    java 之 jsp简介
    http 之 CORS简介
    web 之 session
    linux 之学习路线
    Ubuntu 之 win10更新ubuntu启动项消失
    Web 之 Cookie
  • 原文地址:https://www.cnblogs.com/stepping/p/14900336.html
Copyright © 2011-2022 走看看