2014-09-18 2 views
-1

I가 내가 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 
+0

스택 오버플로는 코드 변환 서비스가 아니기 때문에이 질문은 논점의 여지가없는 것으로 보입니다. – Carsten

+0

'void terms (void (* yield) (int));'[예제] (http://rosettacode.org/wiki/Sieve_of_Eratosthenes#C.2B.2B). – jfs

답변

1

를 사용하여 구조체을 유지하기 상태 (즉, 지역 변수)를 반환합니다. 그런 다음 두 가지 함수 (더 나은 이름 선택)를 작성하면 struct 인스턴스를 사용할 수 있도록 조건 호출자를 다시 작성해야합니다.

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;}