数学

取数

已知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)

posted @ 2022-08-11 12:54  zyzzzzlh  阅读(158)  评论(0)    收藏  举报