最大公约数
方法:欧几里得互除法,被除数(比较大那个)对除数取模,获得余数。再以除数作为被除数,余数作为除数,再取模。一直循环直到余数为0时的除数就是最大公约数。
int fun(int a, int b) {
int c = 0;
if (a<b) { c = a;
a = b;
b = c; }
while(b!=0){
c = a%b;
a = b;
b = c;
}
return a;
}
阶乘
方法:递归
n!=n*(n-1)!=n*(n-1)(n-1)!=n(n-1)*(n-2)……21!
计算质数
质数:只能被1和自身整除
方法:艾拉托斯特尼筛法
求2到n之间的质数:先把数列2到n的最小值2的倍数去掉,再把3的倍数去掉,再把5的倍数去掉……把原数列中最小值的倍数去掉,剩下的就是质数
求解定积分
方法:用梯形面积和来求解定积分的梯形法,从梯形面积得到近似值
梯形法:f(x)的定积分的值=x轴和f(x)曲线围成的部分面积,按y轴方向把面积分割(分割后的面积近似梯形),计算梯形的面积和得到定积分的值。f(x)在[a,b]区间内f(x), y=0, x=a, x=b围成的面积,分成n等分(n越大越精准),每一份梯形的高h=(b-a)/n,梯形的面积=(上底+下底)*h/2=(f(x0)+f(x1))*h/2。定积分sum=(f(x0)+f(x1))*h/2 + (f(x1)+f(x2))*h/2 …… + (f(xn-1)+f(xn))*h/2