1 每次使用數組之前一定要檢查數組是否越界,答案錯誤有可能是數組越界造成的。 2 快排看熟,多熟悉幾種排序方法,如果快排出問題馬上換掉 Sort函數,默認升序
#include <algorithm>int main(int argc, _TCHAR* argv[]){int a[20]={2,4,1,23,5,76,0,43,24,65},i;for(i=0;i<20;i++) cout<<a[i]<<endl;sort(a,a+20);for(i=0;i<20;i++) cout<<a[i]<<endl;return 0;}3 搞清楚long long int long int int double的取值范圍 4 搞清楚小數點精確到幾位的輸出方式,前方補零 setw setfill(‘0’) 精確到小數點后4位,四舍五入
#include<iomanip>cout<<setPRecision(4)<<a;輸出4位整數,不足補零
cout<<setfill(‘0’)<<setw(4)<<a;不要四舍五入可以轉字符串再截取 四舍五入的另一種方法是+0.5取floor
5 搞清楚數字和字符串之間轉換的方式
#include<sstream>string a;cin>>a;stringstream ss(a);int b;ss>>b;6 如果出現超時的問題,可以把一些函數形參中比較大的變量設置成全局變量,可以縮短函數之間傳值的時間。
7 vector的size和int類型是其實是不一樣的,vector的size是不會減到負值的
8 熟悉scanf和printf的使用方式,關鍵的時候能救命,cout和cin比這兩個慢很多
#include<stdio.h>#include <iostream>using namespace std;int main( ){ int a; float b; char c; scanf("%d %c %f",&a,&c,&b); //注意在變量名前要加地址運算符& printf("a=%d,b=%f,c=%c/n",a,b,c); return 0;}9 熟悉創建定長vector,數組,動態數組的方法,如果碰到超時,可以考慮把id優化成數組中元素的位置,可以節省查找的時間。
10 求最大公約數要注意:不是只反復除以不超過兩個數開根號的質數就可以的,萬一其中一個數是質數呢?3和6?學習輾轉相除法(大數取小數的余數,再對余數取余數,可以整除為止)。
#include<iostream>using namespace std;int a , b , a1 , b2 , l;int gcd(int x , int y){ if(!y) return x; else return gcd(y , x%y);}int main(){ std::cout << "請輸入兩個正整數,計算它們的最大公約數" << endl ; int a , b , ans; std::cin >> a >> b; if(a > b) ans = gcd(a , b); else ans = gcd(b , a); cout << ans; return 0;}11 在cin后使用getline,要記得在使用getchar前接受cin后面的換行符 12 改字體:工具,選項,環境,字體和顏色
以上內容很多投機取巧的部分,純粹應試。
新聞熱點
疑難解答