Files
2026-01-29 21:11:51 +05:00
..
2026-01-29 16:00:33 +05:00
2026-01-29 21:11:51 +05:00
2026-01-29 21:11:51 +05:00

Problem CF - непрерывные дроби

Вам на вход приходят числитель и знаменатель дроби.

Ваша задача: написать программу выдающую на стандартный вывод представление цепной дробью.

Пример 1

Ввод Вывод
1 3 0 3

Пример 2

Ввод Вывод
43 19 2 3 1 4

Пример 3

Ввод Вывод
345 678 0 1 1 27 1 3

Решение

#include <stdio.h>
#include <assert.h>

#define ull unsigned long long

void cf(ull x, ull y);

int main() {
  ull x = 0, y = 0;
  int res;
  
  res = scanf("%llu %llu", &x, &y);
  assert(res == 2);
  
  cf(x, y);

  return 0;
}

void cf(ull x, ull y) {
  ull a = x;
  ull b = y;

  ull q = a / b;
  ull r = a % b;
  printf("%llu ", q);

  while (r > 0) {
    a = b;
    b = r;
    q = a / b;
    r = a % b;
    printf("%llu ", q);
  }
}