【发布时间】:2019-11-22 19:12:16
【问题描述】:
给定四个整数N, L, R and Rem。我必须找到L and R(含)之间的值的数量,当除以N 时得到余数Rem。
例如:如果N = 3, L = 2, R = 10 and Rem = 1,那么在这个范围内除以3余数为1的数字是{4, 7, 10}。所以,答案是 3。
这是我编码的蛮力方法:
int main() {
int N, L, R, Rem;
cin >> N >> L >> R >> Rem;
int Ans = 0;
for (int i = L; i <= R; i++) {
if (i % N == Rem)
Ans++;
}
cout << Ans << endl;
}
解决这个问题的更好方法是什么?
【问题讨论】:
-
提示:如果你有两个数字,
A和B,然后你将它们除以N,它们的余数相同,然后A + NC = B某个整数C -
你必须减少循环,而不是 i++ 使用 i += N