C语言经典算法解析:斐波那契数列与质数判断
需积分: 5 125 浏览量
更新于2024-08-05
收藏 23KB TXT 举报
"C语言100个经典算法.txt 包含了100个C语言编程中的经典算法,涵盖不同难度和主题。文件部分内容展示了斐波那契数列的计算以及找出101到200之间的素数。此外,还有寻找特定形式的数字,如'waterflower'数(每个数字的立方和等于该数字)的实现。"
在C语言中,算法是解决问题或执行任务的步骤序列。这个文件提供了100个经典的C语言算法,这对于学习和提高C语言编程技巧非常有帮助。以下是其中三个示例算法的详细解释:
1. **斐波那契数列**
斐波那契数列是一个序列,其中每个数是前两个数的和,通常以0和1开始:0, 1, 1, 2, 3, 5, 8, 13, 21...。给出的代码段用C语言实现了斐波那契数列的打印,从1到20。`f1` 和 `f2` 分别初始化为斐波那契序列的前两个数1和1,然后在循环中通过累加更新这两个值。每两行输出一个换行符,使得输出更易读。
```c
main()
{
long f1, f2;
int i;
f1 = f2 = 1;
for (i = 1; i <= 20; i++)
{
printf("%12ld%12ld", f1, f2);
if (i % 2 == 0) printf("\n"); // 每两行换行
f1 = f1 + f2; // 更新当前数
f2 = f1 + f2; // 更新下一个数
}
}
```
2. **素数查找**
该算法用于找出101到200之间的素数。素数是大于1且仅能被1和它自身整除的正整数。代码通过`sqrt()`函数计算每个数的平方根,并检查是否能被2到平方根之间的任何数整除。如果找到因子,则该数不是素数,否则输出素数。最后,程序统计并输出找到的素数总数。
```c
#include <math.h>
main()
{
int m, i, k, h = 0, leap = 1;
for (m = 101; m <= 200; m++)
{
k = sqrt(m + 1);
for (i = 2; i <= k; i++)
if (m % i == 0)
{
leap = 0;
break;
}
if (leap)
{
printf("%-4d", m);
h++;
if (h % 10 == 0)
printf("\n");
}
leap = 1;
}
printf("\nThe total is %d", h);
}
```
3. **'waterflower'数**
'waterflower'数是指数字的立方和等于数字本身的三位数。例如,153是一个'waterflower'数,因为1^3 + 5^3 + 3^3 = 153。代码段用于找出100到999之间所有这样的数:
```c
main()
{
int i, j, k, n;
printf("'waterflower' number is:");
for (n = 100; n <= 999; n++)
{
i = n / 100;
j = (n / 10) % 10;
k = n % 10;
if (i * i * i + j * j * j + k * k * k == n)
printf("%d ", n);
}
}
```
这100个经典算法覆盖了数据结构、排序、搜索、数学问题、字符串处理等多个领域,为C语言的学习者提供了丰富的实践材料。通过理解和实现这些算法,开发者可以提升编程技能,增强问题解决能力。
2020-03-31 上传
2024-07-04 上传
2018-01-04 上传
2011-03-17 上传
三分线扣篮
- 粉丝: 19
- 资源: 3
最新资源
- MCP C#试用试题
- nutch初学入门 非常好的入门教程
- c#面试题 网络转载 不错 经典
- C#设计模式大全 好书
- Struts+Spring+Hibernate整合教程.pdf
- BP神经网络原理及仿真实例
- 使用简介POWERPLAY
- Oracle 9i10g编程艺术
- scm手把手开发文档
- Cognos Impromptu
- LoadRunner安装手册.pdf
- cognos 部署 文档
- 用C语言进行单片机程序设计与应用
- Direct3D.ShaderX.-.Vertex.and.Pixel.Shader.Tips.and.Tricks.pdf
- 《uVision2入门教程》.pdf
- spring1.2申明式事务.txt