Прикреплённый файл «2012-12-14.sumfact.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Составить программу для вычисления суммы: 2! + 4! + 6! + ... + п!
   5 -   Рекурсивную
   6 -   Нерекурсивную
   7 '''
   8 
   9 def rawrec(n):
  10     if n <= 2: return 2
  11     m=1
  12     for i in xrange(2,n+1):
  13         m*=i
  14     return m+rawrec(n-2)
  15 
  16 def rawnorec(n):
  17     m=2
  18     for n in xrange(4,n+1,2):
  19         fact=1
  20         for i in xrange(2,n+1):
  21             fact*=i
  22         m+=fact
  23     return m
  24 
  25 # 2!+4!+…+(n-2)!+n! =
  26 # 2+2*3*4+2*3*4*5*6+…+(2*3*..*(n-2))+(2*3*…*n) =
  27 # 1*2*(1+3*4*(1+5*6*(…(1+(n-4)*(n-2)*(1+(n-1)*n))…))) =
  28 # 1+1*2*( 1+3*4*( 1+5*6*( …( 1+(n-4)*(n-2)*(1+(n-1)*n*(1)))…))) -1
  29 def effrec(N):
  30     def __effrec(n):
  31         if n>=N: return 1
  32         return 1+(n+1)*(n+2)*__effrec(n+2)
  33     return __effrec(0)-1
  34 
  35 def effnorec(N):
  36     m=1
  37     for n in xrange(N,0,-2):
  38         m=1+m*(n-1)*n
  39     return m-1
  40 
  41 n=input("Введите число: ")
  42 #for fun in rawrec,rawnorec,effrec,effnorec:
  43 for fun in [rawnorec]:
  44     print fun(n)

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.