当前位置: 首页>>代码示例>>C++>>正文


C++ bigint::tostring方法代码示例

本文整理汇总了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]);
}
}
开发者ID:dk00,项目名称:old-stuff,代码行数:56,代码来源:10275.cpp


注:本文中的bigint::tostring方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。