iT邦幫忙

0

python數學

問題描述:
讓使⽤者輸⼊⼀正整數,撰寫程式找出⼀連續整數數列讓該數列的和為此⼀正整數,
若正整數不能找出連續整數之和,請印出「No」。
例如:
輸⼊說明:
輸⼊⼀個正整數。
輸出說明:
輸出可能的整數相加連續整數,若找不到時,請印出「No」,最後必須有換⾏字元。

0
阿瑜
iT邦新手 2 級 ‧ 2021-10-17 22:49:49

Hint: 連續和的數字的開頭比輸入正整數小

Draft:
https://ithelp.ithome.com.tw/upload/images/20211017/20111516H3zSsatJD7.png

0
neocaffe
iT邦新手 5 級 ‧ 2021-10-17 22:57:48

參考此篇:

Wiki

def partition(number):
    answer = set()
    answer.add((number, ))
    for x in range(1, number):
        for y in partition(number - x):
            answer.add(tuple(sorted((x, ) + y)))
    
    return answer
 

print(partition(7))

其它的部份,請自己寫。

0
淺水員
iT邦高手 3 級 ‧ 2021-10-18 15:45:11

湊熱鬧,運用梯形公式 + 因式分解,時間複雜度約「根號x」
以下為數學描述,程式就自己寫吧

https://ithelp.ithome.com.tw/upload/images/20211018/20112943bCCqoUlvKk.png

我要發表回答

立即登入回答