Description
YT大学附小举办背诵圆率 PI 的比赛。谁背的正确的位数越多,谁为胜者。很多小学生背的位数很多,但是往往会有少数位置的数是错误的。为了快速加测出错误的圆周率,将圆周率 PI 小数点后的数字求模进行简单验证。
例如:某学生背的圆周率为 3.15,则
1510 mod 9 = 6,可以初步判定该学生背的圆周率错误。
数有不同的进制表示,比如二进制、八进制、十进制等。现在给你一个任务,给定一个
n
进制,要它对
n-1
求模,比如:
782910 mod 9 = 8
377777777777777738 mod 7 =6
1234567 mod 6 =3
(
注意:
377777777777777738=112589990684261910 1234567 =2287510 )
你的任务是读入一些不同进制的数,求模。
Input
第一行表示为整数
P(1
≤
P
≤
1000)
,表示一共的测试数据组数。
每组测试测试数据一行,由三个数组成,第一个数表示组号,第二个数
B(2
≤
B
≤
10),
表示
B
进制,第三个数
D
表示要求模的数,
D
的位数不超过
10,000,000
位。
Output
每组测试数据一行,每一个数为组号,第二个为
D mod (B-1)
Sample Input
6
1 10 7829
2 7 12345
3 6 432504023545112
4 8 37777777777777773
5 2 101011111111110000000000000000000011111111111111111111111
6 10 145784444444444457842154777777777547845993
Sample Output
1 8
2 3
3 1
4 6
5 0
6 6
#include<cstdio>
#include<cstring>
char
s[999999];
int
n;
int
main()
{
int
t,k;
scanf
(
"%d"
,&n);
while
(n--)
{
scanf
(
"%d %d %s"
,&t,&k,&s);
int
len=
strlen
(s);
int
w=0;
for
(
int
i=0;i<len;i++)
{
w*=k;
w+=s[i]-
'0'
; //The process of simulation
w%=(k-1);
}
printf
(
"%d %d\n"
,t,w);
}
return
0;
}