求助大佬,全哇了

P1965 [NOIP2013 提高组] 转圈游戏

您的代码有两个问题: 1. 鉴于$n$比较大,因此在计算$\text{temp}\times \text{temp}$的时候有可能超$\text{int}$,因此$\text{temp}$变量最好定义为$\text{long long}$。 2. 请注意运算优先级问题,`!`的运算优先级比`%`高,因此`if(!k % 2)`应为`if (!(k%2))`。另外其实您可以这么写: ```cpp if (k%2) return (temp * temp * 10) % n; //else return (temp * temp) % n; ``` 附上$\text{AC}$代码: ```cpp #include <iostream> using namespace std; long long n, m, k, x; int ksm(int k){ if (k == 0){ return 1 % n; } if (k == 1){ return 10 % n; } long long temp = ksm(k / 2); if (!(k % 2)){ return (temp * temp) % n; } if (k % 2){ return (temp * temp * 10) % n; } } int main(void) { cin >> n >> m >> k >> x; cout << ((x + m * ksm(k)) % n); return 0; } ```
by Sweetlemon @ 2018-10-27 18:45:59


楼上正解
by 蕾姆酱QvQ @ 2018-10-27 18:49:18


@[5743377_2002](/space/show?uid=36701)
by Sweetlemon @ 2018-10-27 19:47:28


考古
by Happynewyear @ 2019-02-14 20:14:01


@[5743377_2002](/space/show?uid=36701)
by Happynewyear @ 2019-02-14 20:14:04


考古
by Happynewyear @ 2019-02-14 20:14:09


????@[Happynewyear](/space/show?uid=87746)
by 正式AFO @ 2019-02-27 15:16:33


考古是森么意思
by 正式AFO @ 2019-02-27 15:17:40


@[5743377_2002](/space/show?uid=36701) 就是很旧的帖子来看看的意思啊
by Happynewyear @ 2019-03-02 10:50:17


知道了,谢谢@[Happynewyear](/space/show?uid=87746)
by 正式AFO @ 2019-07-17 16:13:24


| 下一页