CodeForces 597A Divisibility(팁)

1197 단어
A. Divisibility
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
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.
Examples
input
1 1 10

output
10

input
2 -4 4

output
5

상황을 나누다.ab는 모두 0 2.ab는 0 보다 작습니다.a가 0보다 작으면 b가 0보다 크면 (0도 정제할 수 있다는 것을 기억해라) 정제 문제, 0의 상황을 각각 고려한다.
#include 
int main()
{
	__int64 k,a,b;
	__int64 ans;
	scanf ("%I64d %I64d %I64d",&k,&a,&b);
	if (a >= 0)
	{
		ans = b / k - a / k;
		if (a % k == 0)
			ans++;
	}
	else if (b <= 0)
	{
		a = -a;
		b = -b;
		ans = a / k - b / k;
		if (b % k == 0)
			ans++;
	}
	else
		ans = (-a) / k + b / k + 1;
	printf ("%I64d
",ans); return 0; }

좋은 웹페이지 즐겨찾기