关于c的4种算法以及实例演示
2015-11-20 20:26
218 查看
//递归函数
int jecheng(int n) {
if (n <= 1) {
return 1;
} else {
return n * jecheng(n-1);
}
}
int main(int argc, const char * argv[]) {
//常用算法
//1.穷举:依次列举所有情况,找到满足自己需求的答案
//找最大值
int a[5] = {1, 7, 3, 4, 5};
int max = a[0]; //定义一个迭代变量
for (int i = 0; i < 5; i++) {
//穷举加迭代
if (a[i] > max) {
max = a[i]; //迭代操作
}
}
//判断一个数是否是质数
int n = 74583;
for (int i = 2; i < n; i++) {
if (n%i == 0) {
printf("no");break;
}
}
//2,迭代算法:用新的值取更新原来的值
//求n的阶乘
n = 5;
int result = 1; //迭代变量
for (int i = n; i >= 1; i--) {
result = i * result; //n*(n-1)*(n-2)*(n-3)
}
printf("n! = %d\n", result);
//3.递推算法:数学建模找到推导公式
//乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d*%d=%d\t", i, j, i*j);
}
printf("\n");
}
//4.递归:函数自己调用自己
//选择排序:选择性进行交换
int b[5] = {4,2,3,5,1};
for (int i = 0; i < 5; i++) {
int k = i; //最大值下标迭代变量
for (int j = i; j < 5; j++) { //找到未排序队列最大值下标
if (a[k] < a[j]) {
k = j; //迭代
}
}
if (i != k) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
for (int i = 0; i < 5; i++) {
printf("%d", a[i]);
}
return 0;
}
int jecheng(int n) {
if (n <= 1) {
return 1;
} else {
return n * jecheng(n-1);
}
}
int main(int argc, const char * argv[]) {
//常用算法
//1.穷举:依次列举所有情况,找到满足自己需求的答案
//找最大值
int a[5] = {1, 7, 3, 4, 5};
int max = a[0]; //定义一个迭代变量
for (int i = 0; i < 5; i++) {
//穷举加迭代
if (a[i] > max) {
max = a[i]; //迭代操作
}
}
//判断一个数是否是质数
int n = 74583;
for (int i = 2; i < n; i++) {
if (n%i == 0) {
printf("no");break;
}
}
//2,迭代算法:用新的值取更新原来的值
//求n的阶乘
n = 5;
int result = 1; //迭代变量
for (int i = n; i >= 1; i--) {
result = i * result; //n*(n-1)*(n-2)*(n-3)
}
printf("n! = %d\n", result);
//3.递推算法:数学建模找到推导公式
//乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d*%d=%d\t", i, j, i*j);
}
printf("\n");
}
//4.递归:函数自己调用自己
//选择排序:选择性进行交换
int b[5] = {4,2,3,5,1};
for (int i = 0; i < 5; i++) {
int k = i; //最大值下标迭代变量
for (int j = i; j < 5; j++) { //找到未排序队列最大值下标
if (a[k] < a[j]) {
k = j; //迭代
}
}
if (i != k) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
for (int i = 0; i < 5; i++) {
printf("%d", a[i]);
}
return 0;
}
相关文章推荐
- nginx负载均衡的5策略
- JQuery判断radio是否选中并获取选中值的示例代码
- Python调用MongoDB使用心得
- 《掌握需求过程》阅读笔记二
- 黑苹果安装后不能调节分辨率
- Oracle 删除表中记录 如何释放表及表空间大小
- python调用Mongodb笔记
- Nginx绑定多个域名
- 信息安全系统设计基础第十一周
- MyEclipse中配置Strut.xml自动提示功能
- ASP.NET MVC - loop model data in javascript
- 计算机科学概论
- TextView使用SpannableString设置复合文本
- Java多线程同步与synchronized
- spring AOP
- HDOJ 2020 绝对值排序
- 二叉树n0 = n2 + 1
- 读取imei手机串号
- C++ 08工厂方法模式
- Git和GitHub入门(linux环境)