將n分解成連續整數之和

2021-09-01 09:59:19 字數 426 閱讀 9379

從鍵盤輸入乙個數,然後求出連續整數相加使其和剛好和輸入的數相等。

如:15=1+2+3+4+5

15=4+5+6

15=7+8

開始想了很久,並且一直在想計算,比如例舉所有...這肯定能實現,但是效率不高。後來想起了等差數列來計算。這時候就只要尋找合適了首項以及對應的長度即可。

對於乙個l個步長為1首項為a1的等差數列和s=(2a1+l-1)*l/2 ===>l^2-(2a1-1)l-2s=0==>令b=2a1-1 則

l=(-b+sqrt(b^2+8s))/2.

所以此時先判讀 delta=b^2+8s是否是完全平方數,是則看delta-b是否能被2整除,如果滿足則此時a1滿足條件,計算出l,然後從a1列印到a1+l-1即可。上面兩個如任何乙個不滿足則計算下乙個a1.

**如下還請各位大俠幫忙看看啊,是否達到了要求

將乙個偶數分解成質數之和

目標 將乙個偶數,分解成質數之和。public class disintegrateevennumber 判斷乙個正整數是否是質數 public static boolean isprimenum int inputnum else return result 判斷是否是乙個偶數 public st...

將乙個整數 M 分解成 K 個數之和的方法數

記錄乙個遇見的問題,關於將乙個整數 m 分解成 k 個數之和 1,首先 k 個數不能有 0 如果有 0 也很簡單啊,將問題進一步分解成 將整數 m 分解成 k 1 個數之和 以此類推一直到分解成 1 個數之和,所有相加就可以得出數量 2,對於順序顛倒不算,比如將 3 分解成 2 個數之和,可以分成 ...

將整數分解為連續正整數之和

將乙個整數 n 分解為連續正整數之和,如 15 可以分解為 15 1 2 3 4 5 15 4 5 6 15 7 8 計算從 i 開始連續 k 個數之和 sum k 2 i k 1 2 當 sum n 時,有 k k 2 i 1 k 2 n 0 變形為 i 2 n k k 1 2。在 2,2 n k...