2023年百度之星程式設計大賽試題初賽第一題

2021-04-19 06:38:16 字數 1122 閱讀 6197

第一題(共四題 100 分):連續正整數( 10 分)

題目描述:乙個正整數有可能可以被表示為 n(n>=2) 個連續正整數之和,如:

15=1+2+3+4+5

15=4+5+6

15=7+8

請編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。

輸入資料:乙個正整數,以命令列引數的形式提供給程式。

輸出資料:在標準輸出上列印出符合題目描述的全部正整數序列,每行乙個序列,每個序列都從該序列的最小正整數開始、以從小到大的順序列印。如果結果有多個序列,按各序列的最小正整數的大小從小到大列印各序列。此外,序列不允許重複,序列內的整數用乙個空格分隔。如果沒有符合要求的序列,輸出 「none」 。

例如,對於 15 ,其輸出結果是:

1 2 3 4 5

4 5 6

7 8

對於 16 ,其輸出結果是:

none

評分標準:程式輸出結果是否正確。

答案分析:

p+(p+1)+(p+2)+...+n=x

n-p+1個數

其中p既有:(n-p+1)*(n+p)/2=x

既有:n^2+n-p^2+p-2*x=0

既有:n=(-1+sqrt(1+4*p^2+8*x-4*p))/2 其中n>0 故捨去n=(-1-sqrt(1+4*p^2+8*x-4*p))/2

說明:square root=sqrt=平方根

sqrt(1+4*p^2+8*x-4*p)、n為整數

下面為c語言源程式:

/* * file:   newmain.c

* author: hzb

* * created on 2008??7??28??, ????5:21

*/ #include

#include

#include

/* *

*/ int main(int argc, char** argv)

r=1;

printf("/n");

} }

if(r!=1)

printf("none");

goto start;

}

2023年百度之星程式設計大賽試題初賽題目 題1

第一題 共四題 100 分 連續正整數 10 分 題目描述 乙個正整數有可能可以被表示為 n n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 請編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。輸入資料 乙個正整數,以命令列引數的形式提...

2023年百度之星程式設計大賽試題初賽題目 題3

第三題 共四題 100 分 字串替換 30 分 題目描述 請編寫程式,根據指定的對應關係,把乙個文字中的字串替換成另外的字串。輸入資料 程式讀入已被命名為 text.txt 和 dict.txt 的兩個輸入資料文字檔案,text.txt 為乙個包含大量字串 含中文 的文字,以 whitespace ...

2005「百度之星」程式設計大賽網上決賽試題

第一題 共兩題100分 站點統計 50分 題目描述 s 1 2 3 4 1 4 0 3 2 3 4 5 3 2 2 2 4 6 1 4 其中與s site 同行和同列的數字都表示站點號,其他每個數字表示乙個站點到另乙個站點的超文字鏈結數。如果站點a有到另乙個站點b的直接鏈結或間接 指通過乙個或多個直...