add task.md for task1

This commit is contained in:
2026-01-29 21:03:35 +05:00
parent 84a2e3b556
commit dee33afaf1

56
1. problem_rl/task.md Normal file
View File

@@ -0,0 +1,56 @@
# Problem RL -- рекурсия в цикл
Ниже приведён исходный код программы для рекурсивного алгоритма Евклида.
**Ваша задача**: переписать его так, чтобы вместо рекурсии использовался цикл
Посылка должна состоять из программы, считывающей со стандартного ввода два числа `x` и `y` и выводящей на стандартный вывод одно число `g`
## Пример 1
| Ввод | Вывод |
| --------------- | --------------- |
| `2 1` | `1` |
## Пример 2
| Ввод | Вывод |
| --------------- | --------------- |
| `3 2` | `1` |
## Пример 3
| Ввод | Вывод |
| --------------- | --------------- |
| `2 4` | `2` |
## Примечания
```c
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
unsigned long long gcd(unsigned long long x,
unsigned long long y) {
unsigned long long q;
if (y > x)
return gcd(y, x);
assert (y > 0);
q = x % y;
if (q == 0)
return y;
return gcd(y, q);
}
int main() {
unsigned long long x = 0, y = 0, g;
int res;
res = scanf("%llu %llu", &x, &y);
assert(res == 2);
g = gcd(x, y);
printf("%llu\n", g);
return 0;
}
```