首頁 都市

熱血編程之薛小松重生福工

第五章:新生賽的挑戰(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)因為懶惰和放縱而錯失的機會,如今似乎又重新回到了他的手中。

  “小松,你真是太厲害了!”小李還在興奮地說道,“以后可要多帶帶我??!”

  薛小松笑了笑,點了點頭,心中卻在想:這次機會來之不易,我一定要好好珍惜。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南