Description
小幸运认为他是一个幸运的人,因为他有一个幸运数字kk,有一天他想测试他的幸运数字在不同的数字区间内的幸运程度。幸运程度定义为在[a,b][a,b]区间内可以整除kk的数字个数,即(n%k=0)。由于小幸运的幸运并不能帮他计算他的幸运程度,他找到了聪明的你。
Input
多组输入,即输入包括多行,每行三个数k,a,b。
1≤k≤10^18
−10^18≤a≤b≤10^18
Output
计算幸福程度并单独一行显示。
Sample Input 1
2 4 8
Sample Output 1
3
Code
#include<stdio.h>
int main()
{
long long int k,a,b,count=0;
while(scanf("%lld%lld%lld",&k,&a,&b)!=EOF&&k>=1&&a<=b)
{
//为避免超时,应用选择结构,而不是遍历ab之间的数
long long int i,j;
count=0;
i=a/k;
j=b/k;
if(a<0&&b<0)
{
if(b%k==0)
count=-i+j+1;
else
count=-i+j;
}
else if(a<0&&b>=0)
{
if(b%k==0)
count=-i+j+1;
else
count=-i+j+1;
}
else if(a>=0&&b>=0)
{
if(a%k==0)
count=j-i+1;
else
count=j-i;
}
printf("%lld\n",count);
}
return 0;
}