A - Divisibility
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit
Status
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
`这里写代码片`#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
__int64 k,a,b; //数组最多开到9位数
while(cin>>k>>a>>b)
{
if(a<=0&&b>=0)
{
cout<<-a/k+b/k+1<<endl;//c语言与数学的算术不同 加减乘除都不同 所以最好别合并
}
else if(a>0)
{
cout<<b/k-(a-1)/k<<endl;
}
else if(b<0)//没考虑到
{
cout<<-a/k-(-b-1)/k<<endl;
}
}
return 0;
}
“`
本文介绍了一个算法问题“A-Divisibility”的解决方法,该问题要求在给定区间[a, b]内找到所有能被k整除的整数的数量。通过分析不同情况(如区间是否包含0),文章提供了一段C++代码来实现这一计算。

439

被折叠的 条评论
为什么被折叠?



