9月18號去計算所參加推免生的機試。。。9月19號去計算所參加推免生的面試。。。9月20號墮落在北京的青旅裡,不能出門。。。
首先是不得不承認,計算所的環境很好,真的很好。然後就是機試,6道題目,兩個小時,沒有網路。其實後來自己在看,覺得最起碼有兩個題目是簡單到我這種人都可以做出來的,無奈自己太渣,機試就跪的喲。最後是面試,專案真的太少,以至於老師一直在問我我的社會實踐。。。回來之後,一起住的去面試清華的大牛告訴我,這種事情其實都是有套路,而且之前要想一下老師會問什麼,然後想一下怎麼回答。大牛是真的不一樣的,比如傅利葉級數,我就只會做題,大牛就會想知道這個有什麼用。厲害的人就是厲害,就是會在思維方式上面不一樣。嗯,會在專業上想的比較深入。這樣想來,自己好像理解了會彙編的高老師說的我們沒有思考的能力的意思,像乙隻螻蟻一樣。我一定要改,我改還不行嗎。
然後就是題目了.
1.用鍊錶表示乙個整數集,實現:
a.將乙個整數插入整數集;
b.從整數集中刪除乙個整數;
c.兩個整數集的交集;
d.兩個整數集的並集。
2.將乙個用字串表示的數,表示為整型數
3.a是用任意個(大於等於乙個)數字和字母表示的字串,b是用0個或多個任意數字和字母表示的字串,請程式設計輸出b串在a串中第一次出現的位置,或者輸出不出現。
4.求圓周率,寫出計算公式,並計算出時間複雜度。
5.請根據輸入的點集判斷這些點構成的多邊形是否為凸多邊形。
6.計算輸入的數學表示式的值,數學表示式中包括+、-、*、/、(、)。
上面的題目全憑記憶,和原題意思一樣,表述的比較有誤差。
我只實現了1、2、3、4。下面是**:
第一題:
第一題本質上感覺就是鍊錶的實現。
set.h
#include#includetypedef struct intset set;
typedef struct intset* setlist;
struct intset
;void printlist(setlist s);
setlist insertint(int x, setlist s);
setlist deleteint(int x, setlist s);
setlist extractset(setlist s1, setlist s2);
setlist unionset(setlist s1, setlist s2);
set.cpp
#include"stdafx.h"
#include"set.h"
void printlist(setlist s)
printf("\n"); }}
setlist insertint(int x, setlist s)
else }
return s;
}setlist deleteint(int x, setlist s)
if (p == null)
printf("no number %d in this set!", x);
else
}return s;
}setlist extractset(setlist s1, setlist s2)
} return res;
}setlist unionset(setlist s1, setlist s2)
return s1;
}
1.cpp
// 1.cpp : 定義控制台應用程式的入口
#include "stdafx.h"
#include"set.h"
int _tmain(int argc, _tchar* argv)
printf("please input the number of another set and the set:\n");
scanf("%d", &n);
for (i = 0; i < n; i++)
printf("please input the number you want to insert:\n");
scanf("%d", &i);
h1 = insertint(i, h1);
printf("the inserted list is:\n");
printlist(h1);
printf("please input the number you want to delete:\n");
scanf("%d", &i);
h1 = deleteint(i, h1);
printf("the deleted list is:\n");
printlist(h1);
res = extractset(h1, h2);
printf("the extracted list is:\n");
printlist(res);
h1 = unionset(h1, h2);
printf("the unioned list is:\n");
printlist(h1);
system("pause");
return 0;
}
第二題:
第二題目測是這裡面最簡單的題目了,我唯一調過的題目(一把淚)。
2.cpp
// 2.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include#includeint _tmain(int argc, _tchar* argv)
res = res * 10 + i;
} printf("the number is %d", res);
system("pause");
return 0;
}
第三題:
也不難,就是沒調過。
// 3.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include#include#includeint _tmain(int argc, _tchar* argv)
}if (*tmp2 == '\0')
else
}else
tmp0++;
} if (*tmp0 == '\0')
system("pause");
return 0;
}
第四題:
第四題,我後來去網路上搜才發現第四題是一道大題啊,圓周率也是可以程式設計實現的。覺得程式設計師真是無所不能。
我的實現方法是最簡單的那一種。隨著迴圈次數的增加,圓周率也越來越精確。
// 4.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include#includeint _tmain(int argc, _tchar* argv)
printf("圓周率為:%lf\n",res * 4.0);
system("pause");
return 0;
}
在實現第一和第三題的時候,出現的錯誤,現在想想,覺得挺有趣的,下面附上此問題的解決方法。
有時間要整理一篇關於字串的部落格。
2016中科院推免
最近一直在忙著推免的事情,有一段時間沒寫東西了。很感謝csdn能夠提供乙個平台讓我在這裡寫一些與技術無關的東西,讓我在這裡肆意吐槽而不會把我拉進黑名單。接到了軟體所面試的通知,就過去了。15號下午的機試題目不難,就三題,要求乙個半小時之內完成。第一題很簡單,但是被我做麻煩了。第一題的大概意思就是輸入...
中科院計算所Linux命令上網解決方案
最近,所裡對計費系統進行公升級,系統由原來的億郵系統公升級為srun系統,linux客戶端由原來的命令列方式改為gtk圖形介面,這可苦了我們這些ssh登陸的使用者,最後沒辦法,由於客戶端不開源,只能通過http post方式進行登陸。原理比較簡單,通過curl命令,模擬瀏覽器登陸過程,通過wires...
2018中科院計算所夏令營
中科院計算所的夏令營結束不久,特此記錄一下這段經歷,希望能對後面的小夥伴們有所幫助。計算所的夏令營時間是7月15 20號,15號主要是報道,會給乙個資料袋,裡面是這幾天的餐券和日程安排。16號主要是聽一些講座,就幾個老師講一下自己實驗室做的事情等,但當天基本所有實驗室都會放置一些展板在外面,這是乙個...