Решить на C++
Задача "Остатки"
Даны целые неотрицательные числа a, b, c, d, при этом 0≤c
В этой задаче нельзя использовать инструкцию if, должен быть только один цикл. (ложь, можно использовать один цикл for и сколь угодно циклов while)
Входные данные
На вход подаются четыре строки, в каждой из которых написано по одному неотрицательному целому числу — a, b, c, d. Все числа не превосходят [tex]2*10^{9}[/tex], 0≤c
Выходные данные
Выведите ответ на задачу.
подсказки:
Можно вычесть из чисел a и b число c. Тогда задача сведётся в поиску всех чисел на отрезке от a до b, которые делятся на d. Важно не забыть прибавить c к числам, которые выводятся в качестве ответа.
Ближайшее число, больше или равное a, которое делится на d можно вычислить по формуле: (a+d−1)/d∗d (деление в данном случае целочисленное).
Answers & Comments
Данные поменяй немного и готово
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, i;
cin >> a >> b >> c >> d; //(ввод abcd)
i = a + (c - a % d); //(первое число из промежутка от a до b имеющее остаток c при делении на d)
while (i <= b)
{
cout << i; //(выводим все числа из промежутка от a до b имеющее остаток c при делении на d)
i += d; //(если к числу имеющее остаток c при делении на d прибавить d оно также будет давать остаток c)
}
}