Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2006-01-26 23:30:51
Size: 1024
Editor: 143
Comment:
Revision 5 as of 2006-01-31 17:08:57
Size: 688
Editor: 211
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
AlgorithmQuiz/3Plus1/mgenome 재귀함수를 써서 만들었는데요. 문제가 있어서 질문합니다.
재귀함수를 쓰니까 계산은 되는데 counting을 하기가 어렵네요. 제가 프로그램이 매우 서툴기 때문에 뭐가 문제인지를 모르겠습니다.
프로그램을 돌려보면 count 변수를 return 할때 항상 None이 나오네요. 제 생각으로는 n==1일 때 그 때까지 counting 한 수가 나올 것 같은데...
global 변수를 써서 할려고 했는데 어떻게 쓰는지도 모르겠고... 해서 질문 합니다. 뭐가 문제인가요?
[Recursion]을 써서 만들었습니다.

--- ["yong27"] 님 감사합니다.
Line 7: Line 6:
#!python
Line 12: Line 12:
        ThreePlusOne(n/2, count)         return ThreePlusOne(n/2, count) # return을 빼먹으면 None이 리턴
Line 14: Line 14:
        ThreePlusOne(n*3+1, count)         return ThreePlusOne(n*3+1, count) #return을 빼먹으면 None이 리턴
Line 26: Line 26:
    #import psyco
    #psyco.bind(main)
Line 27: Line 29:
Line 28: Line 31:

ZeroPage:3N+1Problem 참조

[Recursion]을 써서 만들었습니다.

--- ["yong27"] 님 감사합니다.

   1 def ThreePlusOne(n, count=0):
   2     count += 1
   3     if n==1:
   4         return count
   5     elif n%2==0:
   6         return ThreePlusOne(n/2, count) # return을 빼먹으면 None이  리턴
   7     else:
   8         return ThreePlusOne(n*3+1, count) #return을 빼먹으면 None이 리턴
   9         
  10 def main():
  11     i, j = raw_input().split()
  12 
  13     b = 0
  14     for a in range(int(i), int(j)+1):
  15         temp = ThreePlusOne(a)
  16         if b < temp: b = temp
  17     print i, j, b
  18 
  19 if __name__ == '__main__':
  20     #import psyco
  21     #psyco.bind(main)
  22     main()

3N+1Problem 참조

AlgorithmQuiz/3Plus1/mgenome (last edited 2013-08-09 16:13:17 by 61)

web biohackers.net