C语言实用算法程序集:求阶乘、拆分与公约数计算
版权申诉
3 浏览量
更新于2024-07-12
收藏 57KB PDF 举报
C语言是一种广泛应用于软件开发的编程语言,其在算法设计方面具有重要的地位。本篇文档汇总了C语言中的一些常用算法程序,主要包括数值类问题和数学运算,如求阶乘、整数拆分、因子之和以及求最大公约数和最小公倍数。
1. **简单数值类算法**
- **求阶乘**:通过递归循环实现,使用`longfunc()`函数计算一个整数n的阶乘,初始化变量t为1,遍历2到n之间的整数,每次将当前数与t相乘并更新结果。
```c
long func(int n) {
int i;
long t = 1;
for (i = 2; i <= n; i++) {
t *= i;
}
return t;
}
```
- **整数拆分**:函数`split()`用于将整数n的每一位数字存入数组`a`,通过从低位到高位取余数的方式进行。
```c
#define N 4 // 代表整数位数
void split(int n, int a[]) {
int i;
for (i = N - 1; n != 0; i--) {
a[i] = n % 10;
n /= 10;
}
}
```
- **求因子之和**:`factor()`函数计算一个整数n的所有因子之和,包括1和n本身。
```c
long factor(int n) {
int i;
long sum = 0;
for (i = 1; i <= n; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum;
}
```
2. **最大公约数和最小公倍数**:这里采用了辗转相除法(欧几里得算法)来求解两个整数m和n的最大公约数。首先确保m大于n,然后用m除以n得到余数r,如果r为0,则n就是最大公约数;否则,交换m和n,将r赋给n,继续循环。最小公倍数可以通过最大公约数来计算,即`最小公倍数 = m * n / 最大公约数`。
```c
void gcd(int m, int n, int &r) {
while (r != 0) {
int temp = m;
m = n;
n = r;
r = temp % n;
}
printf("最大公约数:%d\n", m);
}
int lcm(int m, int n) {
return m * n / gcd(m, n);
}
```
这些基础算法在C语言编程中具有实用价值,掌握它们能帮助程序员编写高效、简洁的代码来解决各种实际问题。通过这些示例,学习者可以加深对C语言的理解,并提升算法设计和实现能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-09-13 上传
2022-06-20 上传
2023-04-01 上传
2021-10-11 上传
2021-09-30 上传
2022-02-21 上传
xuedaozhijing
- 粉丝: 0
- 资源: 6万+
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器