1、常考算法(1) 求最大、最小值 例如:查找a 数组中的最小值,n为数组的大小 int func(int a , int n) int max=a0; for(int i=0;iai) min=ai; return min; 例如:查找a 数组中的最大值 int func(int a , int n) int max=a0; for(int i=0;iai) max=ai; return max; 常考算法2:求阶乘 (1) 求阶乘long func(int n) int i; long t=1; for(i=2;i=n;i+) t*=i; return t;常考算法三:判断某数为素数 (1)
2、判断某数为素数 素数是指只能被自己和1整除的数 int prime(int n) int m; for(m=2;m0;i-) for(j=0; jaj+1) t=aj; aj=aj+1; aj+1=t; 1) 求最大公约数 欧几里得算法: gcd( int m, int n) int t,r; if(mn) t=m; m=n; n=t; while(n!=0) r=m%n; m=n; n=r; return m; 算法:两数之积除以最大公约数所得的值即为最小公倍数 gcd( int m, int n) int t,r; if(mn) t=m; m=n; n=t; while(n!=0) r=m
3、%n; m=n; n=r; return (m*n)/m;常考算法七:数组元素逆置(1) 数组元素逆置第一个与最后一个交换,第二个与倒数第二个交换exchange(int a , int n) int i, t; for(i=0;in/2;i+) t=ai; ai=an-i-1; an-i-1=t; 常考算法8:累加与累乘 (1) 累加与累乘例如1+2+3+4+5+6.100 int add(int n) int sum=0;for(int i=1;i=100;i+) sum=sum+i return sum 例如1*2*3*4*+5*6.100 int add(int n) int sum=0;for(int i=1;i=100;i+) sum=sum*i return sum常考算法9:整数的各位分离 (1) 整数的各位分离 void inte(int n) int i; while(n) i=n%10; n=n/10;