Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. def A(z,a):
  2. if len(a)<3:
  3. a=[0,1,1]
  4. n=3
  5. print(0,0,"( 1 x )","0")
  6. print(1,1,"( 1 x )","0+1")
  7. print(2,1,"( 1 x )","1+1")
  8. else:
  9. n=len(a)
  10. an=2
  11. while n<=z:
  12. list1=[]
  13. list2=[]
  14. list1.append(a[n-an])
  15. list2.append(0)
  16. nn=an-2
  17. while nn>0:
  18. l=len(list1)
  19. i=0
  20. while i<l:
  21. v=list1[0]
  22. sg=list2[0]
  23. list2.pop(list1.index(v))
  24. list1.remove(v)
  25. list1.append(v+a[n-nn-1])
  26. list2.append(sg*10+1)
  27. if v-n<300: ## speed optimization, should be safe
  28. list1.append(v*a[n-nn-1])
  29. list2.append(sg*10+2)
  30. list1.append(v-a[n-nn-1])
  31. list2.append(sg*10+3)
  32. i=i+1
  33. nn=nn-1
  34. c=list1.count(n-an-a[n-1])+list1.count(n/an-a[n-1])+list1.count(n+an-a[n-1])
  35. c=c+list1.count((n-an)/a[n-1])+list1.count((n/an)/a[n-1])+list1.count((n+an)/a[n-1])
  36. c=c+list1.count(n-an+a[n-1])+list1.count(n/an+a[n-1])+list1.count(n+an+a[n-1])
  37. if c==0:
  38. an=an+1
  39. elif list1.count(n-an-a[n-1])+list1.count(n/an-a[n-1])+list1.count(n+an-a[n-1])>0
  40. sg=0
  41. a.append(an)
  42. if list1.count(n-an-a[n-1])>0:
  43. sg=list2[list1.index(n-an-a[n-1])]*100+11
  44. elif list1.count(n/an-a[n-1])>0:
  45. sg=list2[list1.index(n/an-a[n-1])]*100+12
  46. elif list1.count(n+an-a[n-1])>0:
  47. sg=list2[list1.index(n+an-a[n-1])]*100+13
  48. elif list1.count((n-an)/a[n-1])+list1.count((n/an)/a[n-1])+list1.count((n+an)/a[n-1])>0:
  49. sg=0
  50. a.append(an)
  51. if list1.count((n-an)/a[n-1])>0:
  52. sg=list2[list1.index((n-an)/a[n-1])]*100+21
  53. elif list1.count((n/an)/a[n-1])>0:
  54. sg=list2[list1.index((n/an)/a[n-1])]*100+22
  55. elif list1.count((n+an)/a[n-1])>0:
  56. sg=list2[list1.index((n+an)/a[n-1])]*100+23
  57. elif list1.count(n-an+a[n-1])+list1.count(n/an+a[n-1])+list1.count(n+an+a[n-1])>0:
  58. sg=0
  59. a.append(an)
  60. if list1.count(n-an+a[n-1])>0:
  61. sg=list2[list1.index(n-an+a[n-1])]*100+31
  62. elif list1.count(n/an+a[n-1])>0:
  63. sg=list2[list1.index(n/an+a[n-1])]*100+32
  64. elif list1.count(n+an+a[n-1])>0:
  65. sg=list2[list1.index(n+an+a[n-1])]*100+33
  66. if c>0:
  67. sg=str(sg)
  68. l=len(sg)
  69. i=0
  70. st=""
  71. nm=a[n-an]
  72. while i<l:
  73. if sg[i]=="1":
  74. st=st+str(nm)+"+"+str(a[n-an+i+1])+" "
  75. nm=nm+a[n-an+i+1]
  76. elif sg[i]=="2":
  77. st=st+str(nm)+"*"+str(a[n-an+i+1])+" "
  78. nm=nm*a[n-an+i+1]
  79. elif sg[i]=="3":
  80. st=st+str(nm)+"-"+str(a[n-an+i+1])+" "
  81. nm=nm-a[n-an+i+1]
  82. i=i+1
  83. print(n,an,"(",c,"x )",st)
  84. n=n+1
  85. an=2
  86. return a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement