题意描述:给定区间[a,b],问有多少个整数可以被k整除。

一个小思路是分别计算a到0、b到0有多少个整数被k整除,然后再分类讨论求解。
尤其注意0和端点的判断。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long k,a,b,ans=0;
    cin>>k>>a>>b;
    if(a<0&&b<0)
    {
        a=-a,b=-b;
        swap(a,b);
        ans=b/k-(a-1)/k;
    }
    else if(a>0&&b>0)
    {
        ans=b/k-(a-1)/k;
    }
    else if(a<0&&b>0)
    {
        ans=b/k+(-a/k)+1;
    }
    else 
    {
        if(a==0)
        {
            ans=b/k+1;
        }
        else
        {
            ans=-a/k+1;
        }
    }
    cout<<ans;
    return 0;
}