diff --git a/diy1.py b/diy1.py new file mode 100644 index 0000000..523425d --- /dev/null +++ b/diy1.py @@ -0,0 +1,18 @@ +#一个函数在内部直接或间接调用函数本身,我们把这种情况称为递归。 + +#递归的过程分为两步: +#将问题一层一层的传递下去,叫做递; +#到达最后一层后(边界),利用最后一层的答案,将问题一步步解决,这个过程叫做归。 + +#递归做累加 1+2+3+4+……+num + +def sum_number(num): + #递归的边界(出口) + if num == 1: + return 1 + else: + temp = num + sum_number(num-1) + return temp + +result = sum_number(999) +print(result) \ No newline at end of file diff --git a/diy2.py b/diy2.py new file mode 100644 index 0000000..dbb0686 --- /dev/null +++ b/diy2.py @@ -0,0 +1,13 @@ +#请计算出第几列斐波那契数列会大于20 + +def func(n): + if n<=2: + return 1 + else: + value = func(n-1) + func(n-2) + return value + +for i in range(0,20): + if func(i) > 20: + print('第',i,'列斐波那契数列会大于20') + break \ No newline at end of file diff --git a/diy3.py b/diy3.py new file mode 100644 index 0000000..2ab00c0 --- /dev/null +++ b/diy3.py @@ -0,0 +1,16 @@ +#求阶乘 1*2*3*4****n n * n-1 * n-2 * n-3 * …… * 1 + +#找出阶乘值大于等于600的数 + +def func(n): + if n == 1: + return 1 + else: + value = n * func(n-1) + return value + +for i in range(1,20): + if func(i) >= 600: + print(i) + break + diff --git a/diy4.py b/diy4.py new file mode 100644 index 0000000..3f9749f --- /dev/null +++ b/diy4.py @@ -0,0 +1,7 @@ +def power(x,y): + if y == 0: + return 1 + else: + return x * power(x,y-1) + +print(power(2,3)) \ No newline at end of file