Files
c-contest/2. problem_cf/solution.c
2026-01-29 15:07:06 +03:00

66 lines
1.0 KiB
C

/*
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 > y) ? x : y;
// ull b = (x < y) ? x : y;
ull a = x;
ull b = y;
// printf("a = %llu, b = %llu", a, b);
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("a = %llu, b = %llu", a, b);
printf("%llu ", q);
}
}