您的位置:首页 > 其它

关于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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: