数学
取数
已知a和b ,每个数都可以取很多次,从a*b-a-b开始所有数字都可以取到
偶数位的回文数除了11都不是质数
会被11整除
卡特兰数
\(C_(n+1)\)=\(C_0\)\(C_n\)+\(C_1\)\(C_(n-1)\)+...+\(C_n\)*\(C_0\)
可以应用于
(1)出栈和进栈的问题,即给你提供n个数有多少种进栈和出栈的方式
如果让地k个数最后出栈,出去的方式数等于前k-1个数的进出栈数乘以从k+1到最后所有数字进出栈方式数,从第一个数到第n个数
最大公因数和最小公倍数
辗转相除法求最大公因数
这个做法就是两数相除取余,再将除数和余数相除取余,直到余数为零,此时的除数就是最大公因数,而最小公倍数就是两数相乘再除以最小公倍数
int chazhao(int p,int q)
{
int m;
m=p%q;
if(m==0)
return q;
else
chazhao(q,m);
}
函数
#include<algorithm>
这个头文件可引用__gcd函数
即已知p,q
m=__gcd(p,q);
可求出最大公因数
质数
埃氏筛取质数
在1——n中取质数,从2开始将其本身的倍数标记,那么下次循环时最小数一定是质数,循环标志之后每次剩下的最小数就是质数
void shaixuan(){
for(int i=2;i<=10000;i++){
if(f[i]==1)
continue;
else{
if(i%10==1)
a[++ans]=i;
}
for(int j=1;;j++){
if(i*j>10000)
break;
f[i*j]=1;
}
}
}
平方数求和
\(1^2\)+\(2^2\)+......+\(n^2\)=n(n+1)(2n+1)(1/6)

浙公网安备 33010602011771号