题解 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