連續整數之和為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
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
執行結果:
面試題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...