亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數字分成三個連續的部分,使第三部分是另外兩個的總和?

如何將數字分成三個連續的部分,使第三部分是另外兩個的總和?

慕桂英546537 2021-08-14 15:46:38
我正在嘗試編寫一個 python 程序來確定一個數字的數字是否可以分成三個連續的部分,這樣第三部分是另外兩個的總和。例如,9999198 可以被整除,因為 99 + 99 = 198??偤蛯⑹冀K是最低有效數字。我無法提供方法請幫助。我正在嘗試將其實現為將數字視為單個數字,如上述情況下的 7。然后嘗試創建三個數字的所有子集,這些數字相加為 7,然后使用這些子集找到正確的數字。就像 7 = 2,2,3 所以我的答案是 99,99,198。我的問題是我們如何有效地將這些數字分成 3 個數字的子集。
查看完整描述

1 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

這是我的解決方案,它檢查將給定數字分成 3 部分的所有可能組合,并檢查前兩個分量的總和是否等于第三個分量。


def correct_number(x):

    str_nmbr = str(x)

    for result_split in range(len(str_nmbr)-2):

        part_3 = int(str_nmbr[-result_split-1:])


        for components_split in range(len(str_nmbr)-2-result_split):

            part_2 = int(str_nmbr[1+components_split: -result_split-1])

            part_1 = int(str_nmbr[:components_split+1])


            if part_1 + part_2 == part_3:

                return True


    return False


print(correct_number(9999198)) # True

正如作者所要求的,這里給出了如何確定數字部分的視覺解釋,給定數字“1234567”

1 2 3 4 5 6 7:

  • 第一個循環選擇第二個分隔符

  • 1 2 3 4 5 6|7

  • 第二個循環選擇第一個

  • 1 2|3 4 5 6|7

  • 1 2 3|4 5 6|7

  • 1 2 3 4|5 6|7

  • 1 2 3 4 5|6|7

  • . . . 然后我們將第二個第二個分隔符向后移動 1 步

  • 1 2 3 4 5|6 7

  • 我們繼續移動第一個分隔符

  • 1|2 3 4 5|6 7

  • 1 2|3 4 5|6 7

  • 1 2 3|4 5|6 7

  • . . .


查看完整回答
反對 回復 2021-08-14
  • 1 回答
  • 0 關注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號