第五章:新生賽的挑戰(zhàn)
時間過得飛快,轉(zhuǎn)眼間就到了新生賽的日期。薛小松這幾天一直在緊張地復(fù)習(xí)和刷題,他的目標(biāo)很明確——進入ACM集訓(xùn)隊。為了這一天,他幾乎放棄了所有休息時間,全身心投入到C語言的學(xué)習(xí)中。他的努力并非沒有回報,半個月的高強度訓(xùn)練讓他的編程能力有了質(zhì)的飛躍,從最初的初級一品提升到了初級三品。他甚至在課余時間刷完了《C語言程序設(shè)計基礎(chǔ)》這本書的所有練習(xí)題,還額外學(xué)習(xí)了一些簡單的數(shù)據(jù)結(jié)構(gòu)知識。
比賽當(dāng)天,體育館里坐滿了參賽的學(xué)生,氣氛緊張而熱烈。薛小松坐在自己的位置上,深吸一口氣,試圖平復(fù)內(nèi)心的激動。他知道自己已經(jīng)準(zhǔn)備得很充分了,但比賽的壓力仍然讓他有些緊張。
“小松,別緊張,你準(zhǔn)備得很充分,肯定沒問題!”旁邊的隊友李強拍了拍他的肩膀,輕聲說道。李強是薛小松的高中同學(xué),也是他大學(xué)里的室友,兩人關(guān)系一直很好。他雖然沒有薛小松那么強的編程基礎(chǔ),但他對比賽的熱情絲毫不遜色。
薛小松喃喃道:“希望如此吧,我可不想再錯過這次機會?!?p> “你肯定行的!”李強鼓勵道,“要是我有你一半的水平,我也不用在這兒干著急了?!?p> 薛小松笑了笑,沒有再說話。他能感受到李強的緊張,畢竟比賽的氛圍確實讓人有些喘不過氣來。
比賽題目很快公布,一共五道題,涵蓋了從基礎(chǔ)的循環(huán)結(jié)構(gòu)到較為復(fù)雜的函數(shù)和數(shù)組應(yīng)用。薛小松迅速瀏覽了一遍題目,心中已經(jīng)有了大致的思路。
他從第一題開始,手指飛快地在鍵盤上敲擊,代碼一行行地出現(xiàn)在屏幕上。第一題相對簡單,是經(jīng)典的“水仙花數(shù)”問題:找出所有三位數(shù)中,其各位數(shù)字的立方和等于其本身的數(shù)。
```c
#include
int main(){
int i, a, b, c;
printf(“水仙花數(shù)有:\n“);
for (i = 100; i < 1000; i++){
a = i / 100;//百位
b =(i / 10)% 10;//十位
c = i % 10;//個位
if (i == a * a * a + b * b * b + c * c * c){
printf(“%d\n“, i);
}
}
return 0;
}
薛小松迅速敲完代碼,提交后順利通過了測試。他松了口氣,接著迅速轉(zhuǎn)向第二題。第二題是一道關(guān)于數(shù)組排序的題目,要求用冒泡排序?qū)σ粋€包含10個整數(shù)的數(shù)組進行升序排序。
#include
void bubbleSort(int arr[], int n){
int i, j, temp;
for (i = 0; i < n - 1; i++){
for (j = 0; j < n - 1 - i; j++){
if (arr[j]> arr[j + 1]){
temp = arr[j];
arr[j]= arr[j + 1];
arr[j + 1]= temp;
}
}
}
}
int main(){
int arr[]={64, 34, 25, 12, 22, 11, 90, 88, 76, 43};
int n = sizeof(arr)/ sizeof(arr[0]);
bubbleSort(arr, n);
printf(“排序后的數(shù)組:\n“);
for (int i = 0; i < n; i++){
printf(“%d“, arr[i]);
}
return 0;
}
憑借這段時間的積累,薛小松很快找到了最優(yōu)解,順利拿下第二題。比賽進行到一半時,薛小松已經(jīng)完成了三道題。他抬頭看了看周圍,發(fā)現(xiàn)很多人都還在為第二題掙扎,心中不禁有些自豪。
“小松,你真厲害,已經(jīng)做完三題了?”旁邊的隊友小李驚訝地說道。
薛小松微微一笑:“別夸我,后面還有兩題呢,難度可不小?!?p> 但他沒有松懈,繼續(xù)投入到第四題的思考中。第四題是一道較為復(fù)雜的函數(shù)嵌套問題,要求編寫一個函數(shù),計算斐波那契數(shù)列的第n項。
薛小松仔細分析題目,腦海中不斷模擬各種可能的解法。經(jīng)過一番努力,他終于找到了一個可行的方案,開始敲代碼。
#include
int fibonacci(int n){
if (n <= 0){
return 0;
} else if (n == 1){
return 1;
} else {
return fibonacci(n - 1)+ fibonacci(n - 2);
}
}
int main(){
int n;
printf(“請輸入n:“);
scanf(“%d“,&n);
printf(“斐波那契數(shù)列的第%d項是:%d\n“, n, fibonacci(n));
return 0;
}
然而,當(dāng)他提交測試時,系統(tǒng)卻顯示錯誤。薛小松沒有慌亂,他仔細檢查代碼,發(fā)現(xiàn)了一個細微的邏輯錯誤——遞歸函數(shù)的效率太低,容易超時。
“該死,我怎么沒想到優(yōu)化一下?”薛小松低聲咒罵了一句。
他迅速修改代碼,采用動態(tài)規(guī)劃的方式重新實現(xiàn)。
#include
int fibonacci(int n){
if (n <= 0){
return 0;
}
int a = 0, b = 1, c;
for (int i = 2; i <= n; i++){
c = a + b;
a = b;
b = c;
}
return b;
}
int main(){
int n;
printf(“請輸入n:“);
scanf(“%d“,&n);
printf(“斐波那契數(shù)列的第%d項是:%d\n“, n, fibonacci(n));
return 0;
}
修改后,他再次提交,這次順利通過。此時,距離比賽結(jié)束還有不到半小時,他迅速將注意力轉(zhuǎn)向最后一題。
最后一題是一道綜合性的題目,要求編寫一個程序,輸入一個字符串,統(tǒng)計其中的字母、數(shù)字和空格的數(shù)量。
薛小松深吸一口氣,開始認真思考。時間一分一秒地過去,他終于在比賽結(jié)束前幾分鐘完成了代碼。
#include
int main(){
char str[100];
int letters = 0, digits = 0, spaces = 0;
printf(“請輸入一個字符串:“);
fgets(str, sizeof(str), stdin);
for (int i = 0; str[i]!='\0'; i++){
if ((str[i]>='a'&& str[i]<='z')||(str[i]>='A'&& str[i]<='Z')){
letters++;
} else if (str[i]>='0'&& str[i]<='9'){
digits++;
} else if (str[i]==''){
spaces++;
}
}
printf(“字母數(shù)量:%d\n“, letters);
printf(“數(shù)字?jǐn)?shù)量:%d\n“, digits);
printf(“空格數(shù)量:%d\n“, spaces);
return 0;
}
```
提交后,系統(tǒng)顯示“通過”,薛小松終于松了口氣。比賽結(jié)束后,他疲憊地走出體育館,心中既緊張又期待。他知道自己的表現(xiàn)不錯,但比賽的結(jié)果還需要等待。
“小松,你太厲害了,最后一題我也卡住了,你居然做出來了!”小李追上薛小松,滿臉欽佩地說。
薛小松笑了笑:“運氣好而已,回去等結(jié)果吧?!?p> “運氣?我看是實力!”小李調(diào)侃道,“你這段時間的努力可不是白費的?!?p> 薛小松沒有回應(yīng),只是微微一笑。他知道,這次比賽的結(jié)果對他來說至關(guān)重要。如果能進入ACM集訓(xùn)隊,他將有機會接觸到更高級的編程知識和競賽訓(xùn)練,這對于他未來的職業(yè)發(fā)展有著不可估量的意義。
回到宿舍,薛小松躺在床上,閉上眼睛,腦海中還在回放著比賽的場景。他想起了自己在大學(xué)四年里的頹廢,想起了畢業(yè)時的迷茫和無奈,也想起了這次重生的機會。他暗暗發(fā)誓,一定要抓住這次機會,改變自己的命運。
第二天,比賽結(jié)果公布。薛小松早早地來到教室,和小李一起等待成績的公布。教室里坐滿了參賽的學(xué)生,大家都顯得有些緊張。薛小松的心跳得厲害,但他努力讓自己保持冷靜。
終于,比賽的負責(zé)人走了進來,手里拿著一份名單。他清了清嗓子,說道:“恭喜以下同學(xué)進入ACM集訓(xùn)隊……”
薛小松緊緊握住小李的手,眼睛一眨不眨地盯著負責(zé)人手中的名單。
“薛小松……”當(dāng)這個名字被念到時,薛小松的心跳幾乎要跳出嗓子眼,他感到一陣難以抑制的激動。旁邊的隊友小李猛地拍了一下他的肩膀,大聲說道:“恭喜??!我就知道你能行!”周圍的同學(xué)們也紛紛投來羨慕的目光,這讓薛小松的臉微微有些發(fā)燙。
他站起身,接過負責(zé)人遞過來的集訓(xùn)隊錄取通知,心中充滿了復(fù)雜的情緒。這一刻,他仿佛看到了自己未來的可能性,那些曾經(jīng)因為懶惰和放縱而錯失的機會,如今似乎又重新回到了他的手中。
“小松,你真是太厲害了!”小李還在興奮地說道,“以后可要多帶帶我??!”
薛小松笑了笑,點了點頭,心中卻在想:這次機會來之不易,我一定要好好珍惜。