倍数统计
内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定整数 a,b 与正整数 c,求出在 a 到 b 之间(包含 a 与 b)有多少整数是 c 的倍数。
输入格式
- 第一行:两个整数 a 与 b;
- 第二行:单个正整数 c。
输出格式
- 单个整数:表示答案。
数据范围
- −10^9≤a≤b≤10^9
- 1≤c≤10^9
样例数据
输入:
4 6
5
输出:
1
解析:
由于此题给出的ab范围带负数,所以分三种情况讨论,一是ab都大于0,则答案是b/c-a/c,如果a是c的倍数,再加上一个(a),同理都为负数的情况答案一样,需要考虑b是c的倍数的情况。如果一正一负,则要加上0.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
int ans=0;
cin>>a>>b>>c;
if (a>0)
{
ans=b/c-a/c;
if (a%c==0) ans++;
}else if (b<0)
{
ans=b/c-a/c;
if (b%c==0) ans++;
}else
{
ans=b/c-a/c;
ans++;
}
cout<<ans<<endl;
return 0;
}