fork download
  1. #include <cstdio>
  2. #include <cassert>
  3.  
  4. unsigned foo(unsigned a, unsigned b, unsigned c, unsigned d)
  5. {
  6. assert(c < d);
  7. if (a > b) return foo(b, a, c, d);
  8. unsigned count = 0;
  9. for (a = c + (a + d - 1) / (d * d); a <= b; a += d, count++)
  10. printf(" %u \n", a);
  11. return count;
  12. }
  13.  
  14. /* Даны целые неотрицательные числа a, b, c, d, при этом 0≤c<d.
  15.   Выведите в порядке возрастания все числа от a до b, которые дают остаток c при делении на d.
  16.   В этой задаче нельзя использовать инструкцию if, должен быть только один цикл. */
  17.  
  18. int main()
  19. {
  20. printf("\n Всего найдено: %u\n", foo(2, 2, 1, 2));
  21. return 0;
  22. }
Success #stdin #stdout 0s 4880KB
stdin
Standard input is empty
stdout
 1 

 Всего найдено: 1