Codeforces 597A.Divisibility

题意描述:给定区间[a,b],问有多少个整数可以被k整除。

一个小思路是分别计算a到0、b到0有多少个整数被k整除,然后再分类讨论求解。
尤其注意0和端点的判断。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long k,a,b,ans=0;
    cin>>k>>a>>b;
    if(a<0&&b<0)
    {
        a=-a,b=-b;
        swap(a,b);
        ans=b/k-(a-1)/k;
    }
    else if(a>0&&b>0)
    {
        ans=b/k-(a-1)/k;
    }
    else if(a<0&&b>0)
    {
        ans=b/k+(-a/k)+1;
    }
    else 
    {
        if(a==0)
        {
            ans=b/k+1;
        }
        else
        {
            ans=-a/k+1;
        }
    }
    cout<<ans;
    return 0;
}
全部评论

相关推荐

码客明:我教你个方法,你和你室友沟通一下告知他这个事情。然后就说导员问我就说,室友已经和导员提前沟通了。最后被查到你就说室友和我说了他已经和你沟通好了我没想到他是骗我的呀!把责任都甩给你室友,当然你出去实习的室友也肯定愿意承担这个责任。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务