Остатки
Даны целые неотрицательные числа a, b, c, d, при этом 0≤c<d. Выведите в порядке возрастания все числа от a до b, которые дают остаток c при делении на d.
В этой задаче нельзя использовать инструкцию if, должен быть только один цикл.
Входные данные
На вход подаются четыре строки, в каждой из которых написано по одному неотрицательному целому числу — a, b, c, d. Все числа не превосходят 2∗109, 0≤c<d.
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
2
5
0
2
Вывод
2 4
Ввод
5
5
0
5
Вывод
5
Мой код:
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, e, f, g, r;
cin >> a >> b >> c >> d;
f = (a + d - 1) / d * d;
11 строка. g = (f + c - d) / a;
f = f - g * d;
for (e = f; e + c <= b; e += d)
{
r = e + c;
cout << r << endl;
}
return 0;
}
Вроде норм всё, но если a == 0, то ошибку выдает консоль, как это исправить можно, ошибка, как я понял, в 11 строке с делением происходит))
C/C++
Задача на C++ (Остатки).
Сочувствую Вам. Эту задачу уже разбирали (я — живой свидетель). Если Вам тупо нужен код решения, то уж лучше поспрашивайте его на КиберФоруме, я его видел.
Однако, у тех, кто даёт такие задания, не всё в порядке с логикой. Смотришь на готовое решение и не можешь понять, с какой стати a -= c; b -= c; ???Для чего перемещать границы диапазона?
Короче, если Вы ещё в здравом уме и твёрдой памяти, то любое Ваше решение не совпадёт с ожидаемым.
Однако, у тех, кто даёт такие задания, не всё в порядке с логикой. Смотришь на готовое решение и не можешь понять, с какой стати a -= c; b -= c; ???Для чего перемещать границы диапазона?
Короче, если Вы ещё в здравом уме и твёрдой памяти, то любое Ваше решение не совпадёт с ожидаемым.
Виталик Бондюгин
https://www.cyberforum.ru/cpp-beginners/thread2796594.html
Виталик Бондюгин

Виталик Бондюгин
Что касается моей точки зрения, то было бы неплохо сначала проверить диапазон [a; b] на возрастание!
Тут всё можно и покрасивее сделать (с одним необязательным циклом for, у меня он первый) с нормальной подгонкой под экран (j=53 - это ширина экрана в символах, её можно взять и побольше, в общем -какой надо), иначе, если довериться всевозможным дебильным кодам из всяческих тупых киберфорумов и повестись на эту несусветную идиотскую чушь, во многих случаях будет выдаваться просто самый настоящий дикий ратотуй:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
long a, b, c, d, e, f, g, h = 1, i = 0, j = 53, k, l;
cout << "a b c d: ";
cin >> a >> b >> c >> d;
if (b < a)
{
e = a;
a = b;
b = e;
}
for (e = a; e <= b; e++)
if (e % d == c) break;
g = (b - e) / d;
l = e + g * d;
while (l)
{
l /= 10;
h++;
}
k = j / h;
for (f = e; f <= b; f += d)
{
i++;
cout << setw(h) << f;
if (i == k)
{
i = 0;
cout << endl;
}
}
if (i) cout << endl;
}
А ещё можно в случае, если a>b, выдавать список этих чисел в обратном порядке, да и с выдачей, а за одним и с нэймингом, здесь можно ещё как следует поработать.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
long a, b, c, d, e, f, g, h = 1, i = 0, j = 53, k, l;
cout << "a b c d: ";
cin >> a >> b >> c >> d;
if (b < a)
{
e = a;
a = b;
b = e;
}
for (e = a; e <= b; e++)
if (e % d == c) break;
g = (b - e) / d;
l = e + g * d;
while (l)
{
l /= 10;
h++;
}
k = j / h;
for (f = e; f <= b; f += d)
{
i++;
cout << setw(h) << f;
if (i == k)
{
i = 0;
cout << endl;
}
}
if (i) cout << endl;
}
А ещё можно в случае, если a>b, выдавать список этих чисел в обратном порядке, да и с выдачей, а за одним и с нэймингом, здесь можно ещё как следует поработать.

Евгений Красиков
Прекрасно, что Вы озаботились сравнением границ! Вот только неприятность в том, что условные ветвления запрещены.
Мне пришло в голову, что границы можно упорядочить с помощью массива из двух элементов, используя в качестве индексов результаты сравнения их же значений.
Мне пришло в голову, что границы можно упорядочить с помощью массива из двух элементов, используя в качестве индексов результаты сравнения их же значений.
Похожие вопросы
- Задача по C++
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- Задача на С++ Остатки, помогите пожалуйста понять, что не так.
- Помогите решить задачу на C++.
- ПОМОГИТЕ С ЗАДАЧЕЙ НА C++
- Помогите решить задачу по C++!
- Задача на C
- Задача на C++
- Нужно срочно решить задачу на C++
- Помогите с задачей по C++