五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

1005 繼續(xù)(3n+1)猜想 (Python)

2023-06-03 00:34 作者:咲月未羽  | 我要投稿

卡拉茲(Callatz)猜想已經(jīng)在1001中給出了描述。在這個題目里,情況稍微有些復(fù)雜。

當(dāng)我們驗證卡拉茲猜想的時候,為了避免重復(fù)計算,可以記錄下遞推過程中遇到的每一個數(shù)。例如對?n=3?進(jìn)行驗證的時候,我們需要計算 3、5、8、4、2、1,則當(dāng)我們對?n=5、8、4、2 進(jìn)行驗證的時候,就可以直接判定卡拉茲猜想的真?zhèn)?,而不需要重?fù)計算,因為這 4 個數(shù)已經(jīng)在驗證3的時候遇到過了,我們稱 5、8、4、2 是被 3“覆蓋”的數(shù)。我們稱一個數(shù)列中的某個數(shù)?n?為“關(guān)鍵數(shù)”,如果?n?不能被數(shù)列中的其他數(shù)字所覆蓋。

現(xiàn)在給定一系列待驗證的數(shù)字,我們只需要驗證其中的幾個關(guān)鍵數(shù),就可以不必再重復(fù)驗證余下的數(shù)字。你的任務(wù)就是找出這些關(guān)鍵數(shù)字,并按從大到小的順序輸出它們。

輸入格式:

每個測試輸入包含 1 個測試用例,第 1 行給出一個正整數(shù)?K?(<100),第 2 行給出?K?個互不相同的待驗證的正整數(shù)?n?(1<n100)的值,數(shù)字間用空格隔開。

輸出格式:

每個測試用例的輸出占一行,按從大到小的順序輸出關(guān)鍵數(shù)字。數(shù)字間用 1 個空格隔開,但一行中最后一個數(shù)字后沒有空格。

輸入樣例:

6
3 5 6 7 8 11

輸出樣例:

7 6

題意:輸出在做遞推的過程中那些沒有被訪問到的數(shù)。

小技巧:訪問到的數(shù)放入集合vis,原數(shù)組作為集合L,使用Python集合的差運算L - vis求出結(jié)果。

K = int(input())
L = list(map(int, input().split()))
vis = set()
for n in L:
 ? ?while n != 1:
 ? ? ? ?n = [n, n * 3 + 1][n % 2] // 2
 ? ? ? ?vis.add(n)
ans = [n for n in set(L).difference(vis)]
print(" ".join(map(str, sorted(ans, reverse=True))))

另一種寫法:

K = int(input())
L = set(map(int, input().split()))
vis = set()
for n in L:
 ? ?while n != 1:
 ? ? ? ?n = [n, n * 3 + 1][n % 2] // 2
 ? ? ? ?vis.add(n)
ans = sorted([-n for n in L - vis])
print(" ".join(map(lambda x: str(-x), ans)))


1005 繼續(xù)(3n+1)猜想 (Python)的評論 (共 條)

分享到微博請遵守國家法律
珠海市| 揭阳市| 靖州| 新蔡县| 长葛市| 靖安县| 南乐县| 银川市| 繁峙县| 富平县| 嘉善县| 哈巴河县| 夏津县| 永年县| 富川| 库尔勒市| 贵南县| 呼图壁县| 鄂尔多斯市| 聂拉木县| 马山县| 西林县| 宣化县| 子洲县| 吉林省| 永兴县| 柳林县| 桃江县| 娄烦县| 乡城县| 罗平县| 根河市| 九江县| 海兴县| 甘德县| 咸丰县| 彰化县| 甘肃省| 衡水市| 平和县| 墨竹工卡县|