اینم یه def بازگشتی دیگه(با تشکر از آقای وزیری)
def f (a,b,c):
if c == 0:
return a+b
return c + f(a,b,c-1)
print(f(10,20,10))
فرض کنید که یک قفل به شکل زیر داریم و هر حلقه میچرخد و عددی درست میکنه که رمز قفل و قفل باز میشه
سوال: ب.ب.ک یک عدد بگیرد و بگوید بعد از چند بار چرخیدن حلقه ی داخلی (صدگان رمز)جند بار باید بچرخد تا عدد رمز درست شود و قفل باز شود.
نکته1:حلقه خارجی مساوی است با یکان رمز و حلقه ی وسط برابر با دهگان و حلقه داخلی صدگان رمز.
نکته 2:وقتی حلقه داخلی 1 بار بچرخد(بک عدد جابجا شود)حلقه وسط دو بار و حلقه ی خارجی چهار بار میچرخد.
نکته3:ممکن است عددی وجود داشته باشد که اگر هر چقدر حلقه را بچرخانیم رمز تولید نشود
برای دریافت عکس روی عکس بزنید.
سوال قشنگی بود نه؟
:-)
موفق باشید!!!!
def bsort (A): h,t,n = 0,0,len(A) while h == 0: h = 1 for i in range(n-t-1): if A[i] > A[i+1]: h = 0 A[i] , A[i+1] = A[i+1] , A[i] t += 1 return(A) def BS(A,k,s=0,l=0,h='none'): if s == 1: A = bsort(A) if h == 'none': h = len(A)-1 if h < l: return None else: m = l + (h-l)//2 if A[m] > k: return BS(A,k,0,l,m-1) elif A[m] < k: return BS(A,k,0,m+1,h) else: return m
این برنامه فرقش با بابل سورت معمولی اینه که اگر در یک سری هیچ جابه جایی (بخوانید swap) انجام نشد آرایه قطعا سورت شده است و بیخیالش می شود!
def bs(A):
n = len(A)
h = t = 0
while h == 0 and t < n:
h = 1
for i in range(n-t-1):
if A[i] > A[i+1]:
h = 0
A[i], A[i+1] = A[i+1], A[i]
t += 1
return A
یک ارایه 20 تایی داریم در داخل ارایه را با اعداد رندوم پر کنید و 5 تا 5تا انرا مرتب کنید.
**اول 5تای اول جدا 5تای دوم جدا و به همین شکل**
100 عدد صحیح از کاربر بگیرد و سپس n را از کاربر بگیرد حال نهایتاً با 7 مقایسه بگوید آیا n در بین این 100 عدد هست یا نه؟؟؟
برنامه ای بنویسید که بدون استفاده از حلقه دو عدد a , b را در هم ضرب کند.
.
.
.
.
.
.
.
راهنمایی : از def بازگشتی استفاده کنید.!