题意描述:给定区间[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;
}


京公网安备 11010502036488号