1 solutions
-
0
平方差表示问题
考虑哪些数字可以作为两个不同正整数的平方差:
- 1 不能被表示;
- 形如 ()的奇数可以表示为 ;
- 形如 ()的偶数都不能被表示;
- 4 不能被表示;
- 形如 ()的偶数可以表示为 。
综上所述,记 ,其表示方法数为:
$$\left\lfloor \frac{d-1}{2} \right\rfloor + \max\left( \left\lfloor \frac{d}{4} \right\rfloor - 1,\ 0 \right) $$#include<iostream> using namespace std; int main() { int t; scanf("%d", &t); for(int i = 1; i <= t; i++) { long long a, b; scanf("%lld%lld", &a, &b); long long d = abs(a * a - b * b); printf("%lld\n", (d - 1) / 2 + max(d / 4 - 1, (long long)0)); } return 0; }
- 1
Information
- ID
- 490
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- (None)
- # Submissions
- 68
- Accepted
- 8
- Uploaded By