91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編寫代碼實現分糖果效果

發布時間:2021-10-13 15:20:32 來源:億速云 閱讀:168 作者:iii 欄目:編程語言

本篇內容介紹了“如何編寫代碼實現分糖果效果”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

問題描述

有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然后進行下面的游戲:每個小朋友都把自己的糖果分一半給左手邊的孩子。一輪分糖后,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。反復進行這個游戲,直到所有小朋友的糖果數都相同為止。你的任務是預測在已知的初始糖果情形下,老師一共需要補發多少個糖果。

輸入格式:程序首先讀入一個整數N(2<N<100),表示小朋友的人數。接著是一行用空格分開的N個偶數(每個偶數不大于1000,不小于2)。

輸出格式:要求程序輸出一個整數,表示老師需要補發的糖果數。

解決方案

對于這種比較復雜的題目,我們可以將問題拆解。本題可以簡化為:(1)每個小朋友將自己的糖果分一半給左邊的孩子。(2)給擁有奇數顆糖的孩子補發糖果。(3)判斷所有孩子糖果數量是否相等。在寫代碼時,我們必須先讀入孩子的個數,其次判斷每個孩子的糖果數,由此計算出這個孩子應該給左邊孩子的糖果數量。最后判斷奇偶,進行補發糖果并判斷孩子的糖果數量是否相等,如果不相等,則反復進行這些步驟。

分糖果問題示例代碼

N = int(input())  # 孩子的個數

s = list(map(int,  input().split()))  # 每個孩子的糖果數

ans = sum(s)  # 開始總的糖果數

a = s[0] // 2   # 上一個孩子給下一個孩子的糖果數

while len(s) !=  s.count(s[0]):  # 當每個人糖果數不一樣時執行

    for i in range(N):

        if i + 1 == N:   # 讓最后一個孩子的下一個指向第一個孩子

            i = -1

        # 分糖果

        s[i+1], a = s[i+1] + a - s[i+1] // 2,  s[i+1] // 2

        if s[i+1] % 2 != 0:  # 奇數時加1

            s[i+1] += 1

ans = sum(s)-ans # 補發的糖果數

print(ans)


“如何編寫代碼實現分糖果效果”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江西省| 措勤县| 寻甸| 依安县| 无极县| 宁强县| 东莞市| 遵义市| 江源县| 长汀县| 巧家县| 石泉县| 旬阳县| 扶余县| 勐海县| 乌拉特前旗| 聂拉木县| 大关县| 乐昌市| 玛纳斯县| 舟山市| 闸北区| 延庆县| 长子县| 合阳县| 滁州市| 牙克石市| 民和| 平阴县| 灵石县| 汉寿县| 伊金霍洛旗| 曲靖市| 辽宁省| 河东区| 太和县| 绿春县| 开鲁县| 东明县| 墨脱县| 灵台县|