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 thata ≤ 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
题意:给一个闭区间,问能整除k的个数
题解:边界求值,分a<=0&&b<=0 [转为正数], a<=0&&b>=0 , a>&&b>0 三种情况
代码:
#include <cstdio> int main() { long long k,a,b,sum,t; while(~scanf("%lld%lld%lld",&k,&a,&b)) { //sum=b/k-a/k; if(a<=0&&b<=0) { t=-a; a=-b; b=t; } if(a>0&&b>0) sum=b/k-(a-1)/k; if(a<=0&&b>=0) sum=b/k-a/k+1; printf("%lld\n",sum); } return 0; }