企业网站赏析,网站使用功能介绍是用什么软件做的,wordpress动漫视频主题,深圳网站官网建设方案YY
题目大意#xff1a;
给出一个超大正整数S#xff0c;求出nn{n}^{n}nnS中n的解
样例输入
387420489
样例输出
9
数据范围限制
S的位数小于500000
解题思路#xff1a;
看到数据#xff0c;爆搜是不可能的#xff0c;我们用数字的位数来做#xff0c;我们用一…YY
题目大意
给出一个超大正整数S求出nn{n}^{n}nnS中n的解
样例输入
387420489
样例输出
9
数据范围限制
S的位数小于500000
解题思路
看到数据爆搜是不可能的我们用数字的位数来做我们用一个公式log10(S)1log_{10}(S)1log10(S)1(S的位数当S为100时结果为213若ab{a}^{b}abS,则bloga(S)1log_{a}(S)1loga(S)1)然后将S换为p的p次方如题意则为log10(pp)1log_{10}({p}^{p})1log10(pp)1,然后就可以代换成p∗log10(p)1p*log_{10}(p)1p∗log10(p)1因为p的p次方的位数等于p的位数乘上p然后根据这个东西枚举p再判断这个的值和S的位数是否相等即可
#includecstdio
#includeiostream
#includecmath
#includecstring
#includestring
using namespace std;
string str;
long long len;
int main()
{cinstr;lenstr.size();//位数for (long long i1;ilen1;i)//枚举p因为3^327,27的位数为2由此得知要加一if (floor(i*log10(i)1)len)//求出p的p次方的位数再判断是否和S的位数相等{printf(%lld,i);//输出break;//退出}return 0;
}