原題連結
題解
請看這
我補充一點:由於 \(x\leqslant 2\) 和 \(n\leqslant 2\) 很明顯不對勁,所以要特判一下
二點:像這種看起來需要模擬來找答案的不妨手推一下數學式子來找答案
code
#include<bits/stdc++.h>
using namespace std;
int main()
{
double x,n;
cin>>x>>n;
if(x==1&&n>0||x==2&&n>2) puts("inf");
else if(x==1&&n==0||x==2&&n==1) puts("0");
else if(x==2&&n==2) puts("1");
else
{
cout<<ceil(log2((n-(double)2.0)/(log2(x)-(double)1.0)));
}
return 0;
}