资源描述:
《acm小组内部预定函数acm》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ACM小组内部预定函数ACM数学问题:1.精度计算——大数阶乘2.精度计算——乘法(大数乘小数)3.精度计算——乘法(大数乘大数)4.精度计算——加法5.精度计算——减法6.任意进制转换7.最大公约数、最小公倍数8.组合序列9.快速傅立叶变换(FFT)10.Ronberg算法计算积分11.行列式计算12.求排列组合数13.求某一天星期几字符串处理:1.字符串替换2.字符串查找3.字符串截取4.LCS—最大公共子串长度5.LCS-生成最大公共子串6.数字转化为字符计算几何:1.叉乘法求任意多边形面积2.求三角形面积3.两矢量间角度4.两
2、点距离(2D、3D)5.射向法判断点是否在多边形内部6.判断点是否在线段上7.判断两线段是否相交8.判断线段与直线是否相交9.点到线段最短距离10.求两直线的交点11.判断一个封闭图形是凹集还是凸集12.Graham扫描法寻找凸包13.求两条线段的交点数论:1.x的二进制长度2.返回x的二进制表示中从低到高的第i位3.模取幂运算4.求解模线性方程5.求解模线性方程组(中国余数定理)6.筛法素数产生器7.判断一个数是否素数8.求子距阵最大和9.求一个数每一位之和10.质因数分解11.高斯消元法解线性方程组图论:1.Prim算法求最小生成
3、树2.Dijkstra算法求单源最短路径3.Bellman-ford算法求单源最短路径4.Floyd算法求每对节点间最短路径5.解欧拉图排序/查找:1.快速排序2.希尔排序3.选择法排序4.二分查找高精度运算专题:1.本专题公共函数说明2.高精度比较3.高精度加法4.高精度减法5.高精度乘106.高精度乘单精度7.高精度乘高精度8.高精度除单精度9.高精度除高精度一、数学问题1.精度计算——大数阶乘语法:intresult=factorial(intn);参数:n:n的阶乘返回值:阶乘结果的位数注意:本程序直接输出n!的结果,需要返回
4、结果请保留longa[]需要math.h源程序:intfactorial(intn){longa[10000];inti,j,l,c,m=0,w;a[0]=1;for(i=1;i<=n;i++){c=0;for(j=0;j<=m;j++){a[j]=a[j]*i+c;c=a[j]/10000;a[j]=a[j]%10000;}if(c>0){m++;a[m]=c;}}w=m*4+log10(a[m])+1;printf("%ld",a[m]);for(i=m-1;i>=0;i--)printf("%4.4ld",a[i]);ret
5、urnw;}2.精度计算——乘法(大数乘小数)语法:mult(charc[],chart[],intm);参数:c[]:被乘数,用字符串表示,位数不限t[]:结果,用字符串表示m:乘数,限定10以内返回值:null注意:需要string.h源程序:voidmult(charc[],chart[],intm){inti,l,k,flag,add=0;chars[100];l=strlen(c);for(i=0;i=10
6、){s[i]=k%10;add=k/10;flag=1;}else{s[i]=k;flag=0;add=0;}}if(flag){l=i+1;s[i]=add;}elsel=i;for(i=0;i