class Solution {
public:
string smallestGoodBase(string n) {
long long x = stol(n);
for(int i = 2; i <= 60; i++){
long long k = pow(x,1.0/(1.0*i));
if(k == 1) continue;
long long sum = 0;
long long t = 0;
for(int j = 0; j <= i; j++){
if(!j) t = 1;
else t *= k;
sum += t;
}
if(sum == x) return to_string(k);
}
return to_string(x-1);
}
};
Leetcode 483 最小好进制
本文介绍了一种寻找整数最小优秀基数的算法实现。通过分析给定整数n的数学特性,采用逆向思维的方式计算出使n拥有最短表示形式的基数。文章通过具体的C++代码展示了如何遍历可能的基数长度,并利用幂运算和累加求和来验证每个候选基数是否符合条件。


被折叠的 条评论
为什么被折叠?



