常用基础算法程序
常用的基础算法程序
1.高位数逐位取出
逆序输出:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n)
{
cout << n % 10;
n /= 10;
}
return 0;
}
正序输出(使用递归):
#include <iostream>
void get_first_digit(int num) {
if(num < 10) {
std::cout << num << " ";
return;
}
get_first_digit(num / 10);
std::cout << (num % 10) << " ";
}
int main() {
int num = 12345;
get_first_digit(num); // 输出:1 2 3 4 5
return 0;
}
2.获取多位数位数
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int cnt = 0;
while (n)
{
n /= 10;
cnt++;
}
cout << cnt << endl;
return 0;
}
3.求最大公约数
#include <iostream>
using namespace std;
/// @brief Greatest Common Divisor
/// @param a
/// @param b
/// @return
int gcd(int a, int b)
{
if (b == 0)
{
return a;
}
else
{
return gcd(b, a % b);
}
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
return 0;
}
更推荐用循环写:
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int c = a % b;
while (c)
{
a = b;
b = c;
c = a % b;
}
cout << b << endl;
return 0;
}
4.求最小公倍数
需要先实现最大公因数。
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a * b / gcd(a, b) << endl;
return 0;
}

一些常用的算法程序笔记,时不时会忘记怎么写,因此记录一下
浙公网安备 33010602011771号