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)是指两个或多个整数公有的倍数中最小的一个。
计算最大公约数的常用方法是欧几里得算法(辗转相除法)。
最大公约数和最小公倍数之间的关系是:两数的乘积等于它们的最大公约数与最小公倍数的乘积。
💻 示例代码
#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表示。极速p>
等比数列的通项公式为: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³极速p>
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; }