51nod 1138 數學 等差數列

2021-07-22 13:49:08 字數 494 閱讀 6243

思路:

很顯然每個連續的序列都是等差數列,

那麼我們利用等差數列求和公式。

s=(a1+a1+k-1)k/2=(2·a1+k-1)*k/2;a1是首項,k是個數。

列舉k,首項最小為1,k最大,具體不說了,反正大致就是sqrt(2*n);

列舉量還是在平方以內

題外話:

這題就是沒有去想等差數列,等差數列公式和求和要熟練,以及變數都是一方影響另一方的思想也要有;

#include 

using

namespace

std;

typedef

long

long ll;

const

int n=5e4+10;

int main()

}if(!flag)

puts("no solution");

return

0;}

51nod 1138 數學 等差數列

思路 很顯然每個連續的序列都是等差數列,那麼我們利用等差數列求和公式。s a1 a1 k 1 k 2 2 a1 k 1 k 2 a1是首項,k是個數。列舉k,首項最小為1,k最大,具體不說了,反正大致就是sqrt 2 n 列舉量還是在平方以內 題外話 這題就是沒有去想等差數列,等差數列公式和求和要熟...

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 連續整數的和(等差數列)

基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 給出乙個正整數n,將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。input 輸入1個...