求b进制数模b-1的值。。。
b进制(xn.。。。x3x2x1x0)的值可以写成 xn*b^n+x(n-1)*b^(n-1).....
(xn*b^n)%(b-1)=(xn*((b-1)+1)^n)%(b-1)=xn*(c(n,0)*(b-1)^0+c(n,1)*(b-1)^1+....c(n,n)*(b-1)^n)%(b-1)=xn%(b-1)
故等同于 (x1+x2+x3+...xn)%(b-1)
注意数的长度为10000000.。。
#include<iostream>
#include<string.h>
using namespace std;
char s[10000005];
int main()
{
int n,l,num,b,t,i;
cin>>t;
while(t--)
{
cin>>num>>b>>s;
l=strlen(s);
n=0;
for(i=0;i<l;i++)
n=(n+s[i]-'0')%(b-1);
cout<<num<<" "<<n%(b-1)<<endl;
}
return 0;
}