P9231 [蓝桥杯 2023 省 A] 平方差(拆分问题)
分析:x=(y+z)*(y-z);
y+z 与 y-z 同奇偶性(x要么为奇数,要么为偶数)
奇数:1 与 其本身 乘积
偶数:2 与 x/2 乘积(为4的倍数)
#include<bits/stdc++.h>
using namespace std;
int f(int x) {//小于等于x的奇数个数
if (!x) return 0;
return (x + 1) / 2;
}
int g(int x) {//小于等于x的4的倍数个数
return x / 4;
}
int main() {
int l, r; cin >> l >> r;
cout << f(r) - f(l - 1) + g(r) - g(l - 1);
return 0;
}