P9231 [蓝桥杯 2023 省 A] 平方差(拆分问题)

P9231 [蓝桥杯 2023 省 A] 平方差(拆分问题)_第1张图片

分析:x=(y+z)*(y-z);

y+z        与        y-z        同奇偶性(x要么为奇数,要么为偶数)

奇数:1        与        其本身   乘积

偶数:2        与        x/2         乘积(为4的倍数)

#include
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;
}

你可能感兴趣的:(#,数学,蓝桥杯,算法)