第一題(共四題 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的直接鏈結或間接 指通過乙個或多個直...