Перевод функции Python с выходом в функции в стиле C

У меня есть следующая функция в Python с использованием генераторов, которые я не знаю, как перевести на код в стиле C:

    def terms():
t = 1
yield t
r = 1/z
k = 1
while k <= n:
t = t*(n+1-k)/k*r
if not (k > 2 and k & 1):
yield t*my_number(k)
k += 1

-1

Решение

Используйте структуру, чтобы сохранить состояние (то есть локальные переменные) вашей функции.
Затем напишите две функции (выберите более подходящие имена), вам также придется переписать вызывающую термины, чтобы сохранить экземпляр структуры доступным.

struct terms_locals{int k; ...}

struct terms_locals terms_init() {
return initialized_struct;}

double terms_next(struct terms_locals *loc){
compute yield term;
update *loc;
return yield term;}
1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector