Description
Find the number of k-divisible numbers on the segment [a, b]. In other words you need to find the number of such integer values x that a ≤ x ≤ b and x is divisible by k.
Input
The only line contains three space-separated integers k, a and b (1 ≤ k ≤ 1018; - 1018 ≤ a ≤ b ≤ 1018).
Output
Print the required number.
Sample Input
Input
1 1 10
Output
10
Input
2 -4 4
Output
5
题解:只需要对a,b值的范围进行分类讨论就行了
<span style="font-family:SimSun;font-size:18px;">#include<cstdio>
long long int abs(long long int a)
{
if(a>=0)
return a;
return -a;
}
int main()
{
long long int k,a,b;
while(scanf("%lld%lld%lld",&k,&a,&b)!=EOF)
{
long long int a1,b1;
a1=a,b1=b;
a=abs(a);
b=abs(b);
long long int s1=a/k,s2=b/k;
if(a1>=0&&b1>=0)
{
if(a%k==0)
printf("%lld\n",s2-s1+1);
else
printf("%lld\n",s2-s1);
}
else if(a1<0&&b1>0)
printf("%lld\n",s2+s1+1);
else
{
if(b%k==0)
printf("%lld\n",s1-s2+1);
else
printf("%lld\n",s1-s2);
}
}
return 0;
}</span>