1、欧几里得算法
计算两个非负整数p和q的最大公约数;若q是0,则最大公约数是p,否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数(使用递归)
static int gcd(int p , int q)
{
int r;
if( q == 0 )
return p;
r = p % q; //求出p除以q的余数
return gcd(q , r);
}
2、经典数组处理
(1)找出数组中的最大值
double max = a[0];
for(int i == 1; i < strlen(a);i++)
if(a[i] > max)
max = a[i];
(2)计算数字几元素的平均值
int N = strlen(a);
double sum = 0.0;
for( int i = 0;i < N;i++)
sum += a[i];
double average = sum / N;
(3)复制数组
int N = strlen(a);
double b[N];
for(int i = 0; i < N;i++)
b[i] = a[i];
(4)颠倒数组元素顺序
int N = strlen(a);
double temp;
for(int i = 0;i < N/2;i++)
{
temp = a[i];
a[i] = a[N-1-i];
a[N-1-i] = temp;
}
(5)矩阵相乘(方阵)
int N = strlen(a);
double c[][];
for(int i = 0;i < N; i++ )
for(int j = 0;j< N; j++)
{
for(int k = 0; k < N; k++)
c[i][j] += a[i][k] * b[k][j];
}
3、经典静态函数代码
(1)计算一个整数绝对值
static int abs (int x)
{
if(x < 0)
return –x;
else
return x;
}
(2)计算一个浮点数绝对值
static double abs(double x)
{
if(x < 0.0)
return –x;
else
return x;
}
(3)判断一个数是否为素数
static bool isPrime(int N)
{
if(N < 2) return false;
for(int i = 2;i*i <= N;i++)
if( N / i == 0)
return false;
retrun true;
}
(4)计算调和级数
static double H(int N)
{
double sum = 0.0;
for(int i = 1; i <= N; i++)
sum += 1.0 / i;
return sum;
}