acm 10494 if we were a child again,小學數學

此題要算出他給你的運算式。用 scanf(“%s %s %lld”, m, ch, &n) 讀入,第一個數可能會很大,所以利用字串讀入,讀入之後,利用我們平常小學算數的方法,將被除數一個一個從大位數到小位數的讀入,再用 n 去除或取餘數,除法就每次除每次印;餘數就最後在印就好了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
first = 1;
if (ch[0] == '/')
{
tmp = 0;
for (i = 0; (c = m[i]); i ++)
{
tmp *= b;
tmp += c - '0';
j = tmp / n;
if (j != 0) first = 0;
if (!first) printf("%lld", j);
tmp %= n;
}
if (first) printf("0");
printf("n");
}
if (ch[0] == '%')
{
for (i = 0, tmp = 0; (c = m[i]); i ++)
{
tmp *= b;
tmp += c - '0';
tmp %= n;
}
printf("%lldn", tmp);
}