常用基础算法程序

常用的基础算法程序

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;
}
posted @ 2025-11-18 23:18  Franksama  阅读(0)  评论(0)    收藏  举报