新手,代码可能有点问题,欢迎指错
1排序
void paixu(int* a, int n)
{
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (a[i] < a[j])//从大到小
{
int item = a[i];
a[i] = a[j];
a[j] = item;
}
}
}
}
最大公约数
int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}
进制转化
需要加头文件
#include<iomanip>
输出
cout << setbase(n) << a << endl;
质数
bool Prime(int a)
{
if (a == 2)
return true;
for (int i = 2;i < a; i++)
if (a % i == 0)
return false;
return true;
}
二分法查找
int erfenfa(int* a, int L, int R, int target)
{
while (L <= R)
{
int mid = L + (R- L) / 2;
if (a[mid] == target)
return mid;
if (a[mid] > target)
R = mid - 1;
else
L = L + 1;
}
return -1;//无
}
//
int lcm(int a, int b)
{
return a / gcd(a, b) * b;
}
交换
void Swap(int& x, int& y)
{
int tmp = x;
x = y;
y = tmp;
}