好吧,我承认,又被一道辣鸡题卡住了,感觉自己的前途一片灰暗······
这道题是一道数论题,其大意就是求【A,B】之中有多少个数是平方差,好奇怪的题意,强行卡了十几分钟,还是求助dalao吧。
正解中用的是奇偶关系以及其运算。
若A,B一奇一偶,则(a+b)(a-b)为奇数。
若A,B奇偶相同,则(a+b)(a-b)为4的倍数。
然后就233了,只要%4!=2,就是平方差。
至于正确性,我已经在纸上用解方程的方法验证了,就不在赘述了。
最后泪流满面地吸取教训:数论题,不管它三七二十一,先把表打出来看看(这个题的规律这么明显,打表很快就能A掉啊)。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdio>
using namespace std;
long long a,b;
int ans=0;
int main()
{
scanf("%lld%lld",&a,&b);
for(long long i=a;i<=b;i++)
{
if(labs(i)%4!=2)ans++;
}
cout<<ans<<endl;
return 0;
}