本文整理汇总了C++中bigint::tostring方法的典型用法代码示例。如果您正苦于以下问题:C++ bigint::tostring方法的具体用法?C++ bigint::tostring怎么用?C++ bigint::tostring使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bigint
的用法示例。
在下文中一共展示了bigint::tostring方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scanf
main(){
int i,n,count,t;
long long j,k;
char s[500001],tmp[500001];
for(i=1;i<=100000;i++)
use[(int)floor(i*log10(i))+1]=i;
use[1]=0;
scanf("%d",&t);
while(t--){
scanf("%s",s);
n=strlen(s);
p=s;
if(n==1 && s[0]=='1'){
puts("1");
continue;
}
if(!use[n]){
puts("-1");
continue;
}
i=use[n];
for(j=1;i--;j=(j*use[n])%10000000000000LL);
for(i=n-13,k=0;i<n;k=k*10+s[i++]-'0'){
j+=3;
j-=3;
}
count=0;
while(j>1 && k>1){
if(j%10 != k%10)count++;
j/=10,k/=10;
}
if(count>1){
puts("-1");
continue;
}
if(n>10000){
printf("%d\n",use[n]);
continue;
}
r=use[n];
r.d=1;
p=1;
p.d=1;
for(i=1;i<=use[n];i<<=1,r*=r)
if(i&use[n])p*=r;
p.tostring(tmp);
count=0;
i=n;
while(i-- && count<=1)
if(tmp[i]-s[i])count++;
if(count>1)
puts("-1");
else
printf("%d\n",use[n]);
}
}