51nod 1138 連續整數的和

2021-08-17 13:21:53 字數 429 閱讀 9866

萌新第一次發文

進入正題啦......

此題最容易想到的就是利用等差數列的通項公式sum=n*(a1+an)/2=n*(a1+a1+n-1)/2,此時公差d為1。

將次方程做一些變換,a1=(sum-1/2(n^2-n))/n,從n=2開始遍歷,所找到的a1即為解。

這裡的難點是遍歷n的範圍,因為a1>=1,所以a1+ai+n-1>=n+1>n,所以2*sum>n*n,所以n《根號2*sum<2*根號sum

上**:

#include

#include

#include

using

namespace

std;

intmain

()} //v%b判斷得到整數的a1}if

(flag==0)

return0;

}

51nod 1138 連續整數的和

給出乙個正整數n,將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。input 輸入1個數n 3 n 10 9 output 輸出連續整數中的第1個數,如果有多個按照遞增序...

51Nod 1138 連續整數的和

給出乙個正整數n 3 n 10 9 將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。假設n a a k 那麼n a k k k 1 2 a和k都是未知,假如我們遍歷a,k...

51Nod 1138 連續整數的和

題目 給出乙個正整數n,將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。輸入 輸入1個數n 3 n 10 9 輸出 輸出連續整數中的第1個數,如果有多個按照遞增序排列,如...