题意描述:给定区间[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; }