题解 P1348 【Couple number】
嘿嘿,超简单的数学题!!!
【算法分析】
step 1:a^2-b^2=(a+b)(a-b)=>a+b与a-b奇偶性相同
step 3:所以(a+b)(a-b)要么是奇数,要么是4的倍数
step 4:couple number要么是奇数,要么是4的倍数
step 5:验证:若n=2k-1,则(a+b)(a-b)=2k-1
a+b=2k-1, a-b=1, a=k, b=k-1正确!
若n=4k,则(a+b)(a-b)=4k, a+b=2k, a-b=2, a=k+1, b=k-1正确!
【温馨提示】题目说是整数,而非正整数,所以不用特判!
【华丽标程】
#include<iostream>
using namespace std;
int main()
{
int n1,n2,i,ans=0;
cin>>n1>>n2;
for(i=n1;i<=n2;i++)
if(i%4==0||i%2!=0)ans++; //奇数或4的倍数
cout<<ans<<endl;
return 0;
}
更多消息请见http://blog.sina.com.cn/s/blog_1754bd7130102wxk5.html