【题解提供者】吴立强
解法
思路
注意到 r r r 和 l l l 较小,考虑暴力计算。
代码展示
#include <iostream>
using namespace std;
int main() {
int l, r; cin >> l >> r;
int ans = 0;
for(int i = l; i <= r; i ++) ans ^= i;
cout << ans;
return 0;
}
算法分析
程序时间复杂度约为 O ( r − l ) O(r-l) O(r−l)。
拓展
一般来说,for 循环的运行速度较快(内部逻辑简单,分支语句少时),而程序单次计算的时间复杂度一般为:位运算 < 加减运算 < 乘法运算 < 除模运算。(暴力出奇迹)