演算法趣題Q3 翻牌

2021-08-26 02:52:27 字數 853 閱讀 3725

'''

這裡有100 張寫著數字1~100 的牌,

並按順序排列著。最開始所有 牌都是背面朝上放置。

某人從第2 張牌開始,隔1 張牌翻牌。然後第2, 4, 6, …, 100 張牌就會變成正面朝上。

接下來,另乙個人從第3 張牌開始,隔2 張牌翻牌(原本背面朝上 的,翻轉成正面朝上;

原本正面朝上的,翻轉成背面朝上)。再接下來, 又有乙個人從第 4 張牌開始,隔 3 張牌翻牌。

像這樣,從第n 張牌開始,每隔n-1 張牌翻牌,直到沒有可翻動 的牌為止。

'''# 問題:求當所有牌不再變動時,所有背面朝上的牌的數字

ls = [0] * 100

# 建立乙個列表,假設0為牌背面朝上,1為牌正面朝上

for i in range(1, 100): # 100張牌需要99次翻牌

loction = i

while loction <= 99:

if ls[loction] == 0: # 如果是背面朝上

ls[loction] = 1

elif ls[loction] == 1: # 如果是背面朝上

ls[loction] = 0

# 做完一次迴圈,去改變下乙個值

loction = loction + i + 1

#輸出背面朝上的牌

for i in range(100):

if ls[i]==0:

print(i+1,end=" ")

輸出:

1 4 9 16 25 36 49 64 81 100
要點:

要想到怎麼設定翻牌,翻牌的次數

程式設計師的演算法趣題 Q3翻牌

這裡有 100 張寫著數字 1 100 的牌,並按順序排列著。最開始所有牌都是背面朝上放置。某人從第 2 張牌開始,隔 1 張牌翻牌。然後第 2,4,6,100 張牌就會變成正面朝上。接下來,另乙個人從第 3 張牌開始,隔 2 張牌翻牌 原本背面朝上的,翻轉成正面朝上 原本正面朝上的,翻轉成背面上 ...

寫在Q3即將結束

q3馬上就要結束了,回想這個季度,自己做的事情有限,大部分的精力都放在了b2c垂直平台的開發上,乙個人搞這個專案,稍感疲憊,尤其是從css,freemarker,ftl,jquery,dwr,ckeditor,頁面特殊控制項 等前台一直到spring,spring security,lucene,m...

Q3的紛爭個人觀點

近期,q3如火如荼,讓人憤怒不已,讓人反思幾件事情 1 人的本性 這點不像說什麼,360現任ceo到底在幹嘛?乙個3721的流氓軟體,現在又將別人建立的360變成第二個3721,誰來負責?乙個原本服務於大眾的東西,現在讓大家服務於他,於心何忍。不知360開始是什麼,傅盛為何要和以前的3721ceo搞...