開學兩天,身上的職責直接變為兩個班班長,三個小組組長,哇這事情估計夠我忙活了,想躲都躲不掉啊,看來我還是真招人推薦各種管理職務啊,以後要是有人推薦我當經理啊領導啊該多好哈哈哈哈。記得今天奶奶生日,很開心地給奶奶打了一通電話,這怕是我第一次給奶奶電話送生日祝福了哈哈哈,是啊,很想珍惜身邊的人,但很多時 ...
開學兩天,身上的職責直接變為兩個班班長,三個小組組長,哇這事情估計夠我忙活了,想躲都躲不掉啊,看來我還是真招人推薦各種管理職務啊,以後要是有人推薦我當經理啊領導啊該多好哈哈哈哈。記得今天奶奶生日,很開心地給奶奶打了一通電話,這怕是我第一次給奶奶電話送生日祝福了哈哈哈,是啊,很想珍惜身邊的人,但很多時候卻一心想提高自己地能力而忽視了身邊人,就這四年,就這四年好好提升自己,畢業出來一定要好好陪陪家裡祖輩親戚們。
今天有點特殊,我整理了一下學到這麼久編程以來的一些模板和技巧,雖然還沒整理完,就作為(一)吧,後面會慢慢更新(其實是今天解不出難題哭了,一天一道acm都要死了,可能自己訓練量和能力遠遠不夠吧,所以渣渣了,努力努力!)
今日推薦:
今天心情很糟糕,每次心情很爛的時候總會去聽聽自己最最最喜歡的歌曲沒有之一,去激勵自己走出爛心情,希望讀到這篇博客的讀者們,也能輕鬆擺脫自己的爛心情,笑對人生~
《於是》 - 鄧紫棋
既然回不去了 我還在煩惱什麼 於是告訴自己不要哭 我不要哭 我不能哭 往前方的路走一步 再走一步 就會幸福 成長要學會獨處 雖然有一點孤獨
鏈接:https://music.163.com/#/song?id=36198060&autoplay=true&market=baiduhd
(-> 001)分割數值(倒序輸出)模板:
#include<iostream> using namespace std; int main() { int num,k; cin >> num; while(num>0) { k = num % 10; cout<<k<<" "; num = num / 10; } }
(-> 002)求A、B的最大公約數:
法一:
long long gcd(long long m, long long n) { return (m==0)?n:gcd(n%m, m); }
法二:
int gcd(int big, int small) { if (small > big) swap(big, small); int temp; while (small != 0){ // 輾轉相除法 if (small > big) swap(big, small); temp = big % small; big = small; small = temp; } return(big); }
(-> 003)求A與B的最小公倍數。 與上面函數配合使用。
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
(-> 004)判斷素數的方法:
法一:
bool Sushu(int num) { int sqrtO,test = 0; sqrtO = sqrt(num); for(int i = 2;i<=sqrtO;i++) { if(num%i==0) break; else test++; } if(test == (sqrtO -1)) return 1; else return 0; }
法二:
bool judge(int x){ for(int i=2;i<sqrt(x);i++) if(x%i==0) return false; return true; }
(-> 005)全排列輸出:
void Pern(int list[], int k, int n) { // k表示前k個數不動僅移動後面n-k位數 if (k == n - 1) { for (int i = 0; i < n; i++) { printf("%d", list[i]); } printf("\n"); }else { for (int i = k; i < n; i++) { // 輸出的是滿足移動條件所有全排列 swap(list[k], list[i]); Pern(list, k + 1, n); swap(list[k], list[i]); } } }
(-> 006)向量工具:
struct node { double x; // 橫坐標 double y; // 縱坐標 }; typedef node Vector; Vector operator + (Vector A, Vector B) { return Vector(A.x + B.x, A.y + B.y); } Vector operator - (Point A, Point B) { return Vector(A.x - B.y, A.y - B.y); } Vector operator * (Vector A, double p) { return Vector(A.x*p, A.y*p); } Vector operator / (Vector A, double p) { return Vector(A.x / p, A.y*p); } double Dot(Vector A, Vector B) { return A.x*B.x + A.y*B.y; } // 向量點乘 double Length(Vector A) { return sqrt(Dot(A, A)); } // 向量模長 double Angle(Vector A, Vector B) { return acos(Dot(A, B) / Length(A) / Length(B)); } // 向量之間夾角 double Cross(Vector A, Vector B) { // 叉積計算 公式 return A.x*B.y - A.y*B.x; } Vector Rotate(Vector A, double rad) // 向量旋轉 公式 { return Vector(A.x*cos(rad) - A.y*sin(rad), A.x*sin(rad) + A.y*cos(rad)); } Point getLineIntersection(Point P, Vector v, Point Q, Vector w) { // 兩直線交點t1 t2計算公式 Vector u = P - Q; double t = Cross(w, u) / Cross(v, w); // 求得是橫坐標 return P + v*t; // 返回一個點 }
(-> 007)組合公式:
long long int C(int m,int n) { int k=1;//相當於C(m,n) long long int ans=1; while(k<=n) { ans=((m-k+1)*ans)/k; k++; } return ans; }
(-> 008)大數階乘公式:
string bigFactorial(int n){ int ans[maxn],digit = 1; ans[0] = 1; for(int i = 2; i <= n; i++){ int num = 0; for(int j = 0; j < digit; j++){ int temp = ans[j]*i + num; ans[j] = temp%10; num = temp/10; } while(num != 0){ ans[digit] = num%10; num /= 10; digit++; } } string str = ""; for(int i = digit-1; i >= 0; i--) str += ans[i] + '0'; return str; }
(-> 009)楊輝三角列印:
#include<iostream> #include<cstdlib> using namespace std; long long int s=1; long long int h,i,j; int main() { while(cin>>h) { cout<<"1"<<endl; for (i = 2; i <= h; s= 1, i++) { cout<<"1 "; for (j = 1; j <= i - 2; j++) { cout<<(s = (i - j) * s / j)<<" "; } cout<<"1"<<endl; } cout<<endl; } return 0; }
(-> 010)其他整理:
1、char c1,c2,c3的int型即為ASCII碼
2、cout << setprecision(2) << fixed << 固定精度輸出
3、printf("%.2lf\n",num)用於輸出double類型數據並固定精度
4、獲取需要空格輸入的段落:
char a[100]; cin.getline(a, 100)
5、數組a[100]的清零操作 memset(a,0,sizeof(a));
6、 getchar();//把回車符吃掉,否則下一句會出錯
gets(a); //讀取整行
length=strlen(a); //獲得長度
前陣子的一些小模板,積累了起來,貼在博客就方便自己或者有需要的人使用啦~ 我會繼續更新這些比較實用常用的小模板呢~ 如有錯誤,希望評論指正喲~ 互相幫助才能更加成長~