公式准备:
(16 * x) % 15 = x
(16 ^ n * x) % 15 = x
(1+2+... ...+15) % 15 = 0
(n + n+1 + n+2 + ... ... + n+x) % 15 = (1+2+... ...+x)%15 = (1+x) * x / 2 % 15
注意事项:
为了让n%15>m%15,将n%15后+15
参考代码:
#include <iostream> using namespace std; int main() { long long int m, n; cin >> m >> n; m %= 15; n %= 15; n += 15; cout << ((n - m) + 1) * (m + n) / 2 % 15 << endl; return 0; }
0.0分
1 人评分
ET 2019-03-29 22:10:26 |
数据范围:1 <= m <= n <= 1000000000000
tianmaxk 2019-03-30 19:55:35 |
题目的范围,我知道是右端最大为1000000000000。我的意思是如果改成2(^64)-1,代码能通过吗