** 以下都是通過列舉法解決問題的。其實列舉法的本質就是把所有問題可能的結果都嘗試一邊,再通過某種條件將錯誤的結果篩選出去,留下的便是正確的結果。 **
輸出乙個直角三角形,符合 注釋中的那個三角形格式。
# 輸出乙個個三角形
# 輸入 5 輸出的是乙個五行的三角形
# 第一行 1個* 第二行 2個 ... 第五行五個
# 第一步 我們需要一層for迴圈控制輸出 n行 *
# 第二步 我們需要一層for迴圈控制每一層輸出*的個數 1,2,3,4,5
# for i in range(n):
# for j in range(i+1):
# *# **
# ***
# ****
# *****
def out_angle1(n):
for i in range(n):
for j in range(i+1):
print("*",end="")
print()
以下根據案例1改變的輸出三角形,可以根據1嘗試寫一下。
# *
# **
# ***
# ****
# *****
def out_angle2(n):
for i in range(n):
for j in range(n-i-1):
print(" ",end="")
for j in range(n - i,n+1):
print("*", end="")
print()
# *
# ***
# *****
# *******
# *********
def out_angle3(n):
for i in range(n):
for j in range(n-i-1):
print(" ",end="")
for k in range(2*(i+1)-1):
print("*",end="")
斐波那契數列:1,1,2,3,5,8,13,21,34,55,…。斐波那契額數列的規律是 前兩個為1,從第三個開始的每乙個數為前乙個數與前乙個數的前乙個數字的和。比如:第三個數2為第二個數和第乙個數的和。第四個數3為第三個數與第二個數的和。以下為遞迴和非遞迴的兩種求解方式。
# fbnq 遞迴
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
# 非遞迴
def fib_n(n):
result = 0
a = 0
b = 0
for i in range(n+1):
if i<=2:
result = 1
a = 1
b = 1
else:
result = a+b
b,a = result,b
return result
4.求前100個素數和,素數是只能被1和本身整除的數。1不是素數。
# 判斷 100以內素數 並進行求和
def is_prime(n):
result = 0
for i in range(2,n):
is_pr = true
diversor = int(i/2)+1
# print(diversor)
if i>2:
for j in range(2,diversor):
if i %j == 0:
is_pr = false
break
if is_pr == true:
result = result +i
print(i,end= " ")
return result
def is_prime_2(n):
result = 0
prime_list =
for i in range(2,n):
is_pr = true
if i %2 == 0 and i!=2:
is_pr = false
else:
for j in prime_list:
if i %j == 0:
is_pr = false
break
if is_pr == true:
result = result +i
print(i,end= " ")
return result
演算法基礎(1) 列舉
列舉在大家看來可能是乙個非常簡單的問題,不就是乙個遍歷演算法嘛,有什麼好說的,然而,在參加了北京大學mooc的演算法基礎後,我直接被震驚了。原來列舉演算法還能這麼玩!好吧,不說有的沒得沒得了,先來看第乙個例子 熄燈問題 這個問題的描述如下 乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的...
演算法1 列舉法解決熄燈問題
北大郭煒老師 程式與演算法 二 有乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的位置上有一盞燈。當按下乙個按鈕後,該按鈕以及周圍位置 上邊 下邊 左邊 右邊 的燈都會改變一次。即,如果燈原來是點亮的,就會被熄滅 如果燈原來是熄滅的,則會被點亮。在矩陣角上的按鈕改變3盞燈的狀態 在矩陣邊...
基礎演算法2 1 列舉法
題目上新增了超連結,大家點一下題目就會自動跳轉到poj原題介面 冲鸭衝鴨 列舉法由於建模簡單,所以用來提高 實現能力十分合適,暴力搜尋ac題時成就感也是滿滿,而且列舉法應該是之後所有演算法的基礎。我覺得部分演算法的本質只是解決了如何列舉以及對列舉的優化。大家放心起航吧!本章節弄懂題意就可以做,所以就...