1 回文数

📖 理论介绍

回文数是指正读反读都一样的数字。

例如:12321是回文数,从左向右读和从右向左读都是12321。

回文数在字符串处理和算法题中经常出现,判断一个数是否为回文数是常见的编程练习。

判断回文数的方法通常是将数字反转,然后比较反转后的数字是否与原数字相等。

💻 示例代码

#include<stdio.h>

int isPalindrome(int n) {
    int original = n;
    int reversed = 0;
    
    while(n > 0) {
        reversed = ______________;
        n /= 10;
    }
    
    return ______________;
}

int main() {
    printf("1000-2000之间的回文数有:\n");
    for(int i = 1000; i <= 2000; i++) {
        if(isPalindrome(i)) {
            printf("%d ", i);
        }
    }
    return 0;
}

2 最大公约数和最小公倍数

📖 理论介绍

最大公约数(GCD)是指两个或多个整数共有约数中最大的一个。

最小公倍数(LCM)是指两个或多个整数公有的倍数中最小的一个。

计算最大公约数的常用方法是欧几里得算法(辗转相除法)。

最大公约数和最小公倍数之间的关系是:两数的乘积等于它们的最大公约数与最小公倍数的乘积。

配套PPT[点击下载]

💻 示例代码

#include<stdio.h>

// 计算最大公约数
int gcd(int a, int b) {
    while(b != 0) {
        int temp = b;
        b = ______________;
        ______________;
    }
    return a;
}

// 计算最小公倍数
int lcm(int a, int b) {
    return ______________;
}

int main() {
    int a = 48, b = 18;
    printf("数字 %d 和 %d 的最大公约数是: %d\n", a, b, gcd(a, b));
    printf("数字 %d 和 %d 的最小公倍数是: %d\n", a, b, lcm(a, b));
    return 0;
}

3 等差数列

�哈基米 理论介绍

等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的数列。

这个常数称为公差,通常用字母d表示。

等差数列的通项公式为:aₙ = a₁ + (n-1)d

前n项和公式为:Sₙ = n/2 × [2a₁ + (n-1)d] 或 Sₙ = n/2 × (a₁ + aₙ)

💻 示例代码

#include<stdio.h>

void as(int a1, int d, int n) {
    printf("等差数列前%d项:\n", n);
    int sum = 0;
    for(int i = 0; i < n; i++) {
        int term = ______________;
        printf("%d ", term);
        sum += term;
    }
    printf("\n前%d项和: %d\n", n, ______________);
}

int main() {
    as(2, 3, 10); // 首项2,公差3,前10项
    return 0;
}

4 等比数列

📖 理论介绍

等比数列是指从第二项极速起,每一项与它的前一项的比值等于同一个常数的数列。

这个常数称为公比,通常用字母q表示。

等比数列的通项公式为:aₙ = a₁ × q⁽ⁿ⁻¹⁾

前n项和公式为:Sₙ = a₁ × (1 - qⁿ) / (1 - q) (q ≠ 1)

💻 示例代码

#include<stdio.h>
#include<math.h>

void gs(int a1, int q, int n) {
    printf("等比数列前%d项:\n", n);
    int sum = 0;
    for(int i = 0; i < n; i++) {
        int term = ______________;
        printf("%d ", term);
        sum += term;
    }
    printf("\n前%d项和: %d\n", n, sum);
}

int main() {
    ______________; // 首项2,公比3,前5项
    return 0;
}

5 特殊数列求和

📖 理论介绍

特殊数列求和是编程中常见的问题,包括计算特定模式的数列之和。

常见的特殊数列求和包括:

1. 1² + 2² + 3² + ... + n²

2. 1³ + 2³ + 3³ + ... + n³

3. 1×2 + 2×3 + 3×4 + ... + n(n+1)

4. 1/1! + 1/2! + 1/3! + ... + 1/n!

💻 示例代码

#include<stdio.h>

int main() {
    int n = 5;
    int sum1 = 0, sum2 = 0, sum3 = 0;
    float sum4 = 0;
    int factorial = 1;
    
    // 计算平方和、立方和、n(n+1)和、阶乘倒数和的
    for(int i = 1; i <= n; i++) {
        sum1+=______________;  // 平方和
        sum2 += ______________;  // 立方和
        sum3 += ______________;  // n(n+1)和
        ______________;  // 计算阶乘
        sum4 += 1.0 / factorial;  // 阶乘和
    }
    
    printf("1²+2²+...+%d² = %d\n", n, sum1);
    printf("1³+2³+...+%d³ = %d\n", n, sum2);
    printf("1×2+2×3+...+%d×%d = %d\n", n, n+1, sum3);
    printf("1/1!+1/2!+...+1/%d! = %.4f\n", n, sum4);
    
    return 0;
}