XTU 1095 連續自然數和

2021-06-04 18:57:46 字數 714 閱讀 7746

之前,是想利用高斯公式直接求取(第一項最大為m/2

),但是超時。

再後來,終於找到了關於該題的結題報……

該題被定義為:基礎模擬題。

有題目可看出10000=1998+1999+2000+2001+2002;有五項,中間項為2000。這5項與2000相差:-5/2、-5/2+1、0、5/2-1、5/2;    由此可見當項數為奇時,第一項為:m/i-i/2    最後一項為:m/i+i/2

而當第一項為0時,項數最多,設最後一項為b,則有:(0+b)(b-0+1)=2*m;可得出b+1為項數=sqrt(2*m+0.25)-0.5+1;但是由於計算機語言a/b為其整數部分,則最大項數=1+sqrt((doulbe)1+2*m);

但是當項數為偶數時,m/i得到的是中間兩項的平均值,所以判斷是否有i項連續數相加和為m時,m/i=中間項左邊數,則用if((double)m/i==m/i+0.5) 判斷。奇數就更好判斷了:if(m%i==0) 。而偶數第一項就自然為m/i-i/2+1了、

#include#includeusing namespace std;

int m;

int main()

printf("case %d:\n",++num);

for(long i=m;i>=0;i--)

}

for(long i=1;i

1312 連續自然數和

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解檢視執行結果 對於乙個自然數m,求出所有的連續的自然數段,使得這些連續自然數段的全部數字和為m.eg 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。...

問題 1258 連續自然數和

對乙個給定的自然數m,求出所有的連續的自然數段 連續個數大於1 這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入包含乙個整數的單獨一行給出m的值 10 m 2,000,000...

洛谷1147 連續自然數和

對乙個給定的自然數m,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為m。例子 1998 1999 2000 2001 2002 10000,所以從1998到2002的乙個自然數段為m 10000的乙個解。輸入輸出格式 輸入格式 包含乙個整數的單獨一行給出m的值 10 m 2,000,0...