自学C语言第十五天test-8-15

#include
#include

//练习:
//2.编写函数不允许创建临时变量,求字符串的长度

//int my_strlen(char* str){
//    int count = 0;
//    while(*str != '\0'){
//        count++;
//        str++;
//    }
//    return count;
//}
//
//int my_strlen(char *str) {
//    if (*str != '\0') {
//        //return 1 + my_strlen(str + 1);
//        return 1 + my_strlen(str++);//坑
//    } else {
//        return 0;
//    }
//}
//
//int main() {
//
//    char arr[] = "abc";
//    //['a']['b']['c']['\0']
//    //
//    //模拟实现一个strlen函数
//    printf("%d\n", my_strlen(arr));
//    return 0;
//}

//递归与迭代
//3.求n的阶乘(不考虑溢出)

//int main(){
//    int n = 0;
//    scanf("%d",&n);
//
//    int i = 0;
//    int ret = 1;
//    //迭代
//    for (i = 1; i <= n; i++){
//        ret = ret * i;
//    }
//    printf("%d\n",ret);
//    return 0;
//}
//int Fac(int n){
//    if(n <= 1){
//        return 1;
//    }else{
//        return n * Fac(n - 1);
//    }
//}
//int main(){
//    int n = 0;
//    scanf("%d",&n);
//    int ret = Fac(n);
//    printf("%d\n",ret);
//    return 0;
//}
//有一些功能可以用迭代的方式实现,也能使用递归

//4.求第n个斐波那契数(不考虑溢出)

 

//递归可以求解但是效率太低 - 重复大量的计算
//int count = 0;
//int Fib(int n) {//n=50
//    //统计第3个斐波那契数的计算机次数
//    if (n == 3){
//        count++;
//    }
//
//    if (n <= 2) {
//        return 1;
//    } else {
//        return Fib(n - 1) + Fib(n - 2);
//    }
//}
//
//int Fib(int n) {
//    int b = 1;
//    int a = 1;
//    int c = 1;
//    while (n > 2) {
//        c = a + b;
//        a = b;
//        b = c;
//        n--;
//    }
//    return c;
//}
//
//int main() {
//    int n = 0;
//    scanf("%d", &n);
//    int ret = Fib(n);
//
//    //printf("%d\n",count);
//    printf("%d\n", ret);
//    return 0;
//}

//汉诺塔问题
//青蛙跳台阶问题


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部