关闭

关于c的4种算法以及实例演示

标签: c语言函数算法实例递归
79人阅读 评论(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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3249次
    • 积分:210
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类