有个坑要注意,就是第二个数是个string,不能以int类型读,否则就WA。。但是转化为10进制后的数好像是在int范围内的
#include<stdio.h>
static int to10base(char *s, int base, int *digit)
{
int i, res = 0;
for (i = 0; s[i] != '\0'; i++)
{
*digit += s[i] - '0';
res = res * base + s[i] - '0';
}
return res;
}
int main()
{
int t, N;
char s[100];
scanf("%d", &N);
for (t = 0; t < N; t++)
{
if (t)
puts("");
int base, digit, res;
while (scanf("%d", &base), base)
{
scanf("%s", s);
digit = 0;
res = to10base(s, base, &digit);
puts(res % digit ? "no" : "yes");
}
}
return 0;
}