面試題1 連續整數之和為1000的共有幾組?

2021-04-16 17:01:44 字數 862 閱讀 7795

連續整數之和為1000的共有幾組?(假設整數非負)

這是一道小學數學題。

暴力解法,設滿足條件連續整數中最小的那個為i,遍歷 i in [1, 1000],計算數列 i, (i+1), (i+2), (i+3), ... 的部分和(partial sum),如果部分和等於1000,則輸出;如果部分和大於1000,則跳出本層迴圈。python **:

fori 

inrange(

1001

):sum 

= 0;

forj 

inrange(i, 

1001

):sum 

+= j

ifsum 

==1000

:print

range(i, j+1

)ifsum 

>

1000

:break

另一種解法,設有n個連續整數,最小的那個是a,按等差數列求和公式,這n個整數的和為n*a+n*(n-1)/2,現求方程n*a+n*(n-1)/2 =1000的整數解。把方程變為a = 1000/n - (n-1)/2,如果a是整數,要麼n是奇數且n能整除1000(這樣1000/n和(n-1)/2都是整數) ,要麼n是偶數且1000/n的小數部分為0.5。把1000分解為2*2*2*5*5*5,找出符合條件的n有1、5、16、25這4個。

matlab**:

n =[

1:50];

b =1000-n.

*(n-1

)/2;a =b.

/n;find(round(a) 

==a) % 找出使a是整數的n

執行結果:

ans = 1    5    16    25

面試題1 連續整數之和為1000的共有幾組?

連續整數之和為1000的共有幾組?假設整數非負 這是一道小學數學題。暴力解法,設滿足條件連續整數中最小的那個為i,遍歷 i in 1,1000 計算數列 i,i 1 i 2 i 3 的部分和 partial sum 如果部分和等於1000,則輸出 如果部分和大於1000,則跳出本層迴圈。python...

面試題1 連續整數之和為1000的共有幾組?

連續整數之和為1000的共有幾組?假設整數非負 這是一道小學數學題。暴力解法,設滿足條件連續整數中最小的那個為i,遍歷 i in 1,1000 計算數列 i,i 1 i 2 i 3 的部分和 partial sum 如果部分和等於1000,則輸出 如果部分和大於1000,則跳出本層迴圈。python...

面試題1 連續整數之和為1000的共有幾組?

連續整數之和為1000的共有幾組?假設整數非負 這是一道小學數學題。暴力解法,設滿足條件連續整數中最小的那個為i,遍歷 i in 1,1000 計算數列 i,i 1 i 2 i 3 的部分和 partial sum 如果部分和等於1000,則輸出 如果部分和大於1000,則跳出本層迴圈。python...