迭代和递归

张开发
2026/4/20 1:44:51 15 分钟阅读
迭代和递归
迭代和递归文章目录迭代和递归区别例题一n的阶乘1.递归2.迭代例题二、输入1234 输出 1 2 3 4例题三strlen函数的实现方法一遍历方法二递归例题四斐波那契数列方法一递归方法二迭代区别例题一n的阶乘1.递归intfact(intn){if(n1)return1;// 终止条件elsereturnn*fact(n-1);// 自己调用自己}2.迭代intfact(intn){intres1;for(inti1;in;i){res*i;// 一步一步乘上去}returnres;}例题二、输入1234 输出 1 2 3 4voidprint(unsignedintn){if(n9){print(n/10);}printf(%d ,n%10);}intmain(){unsignedintinput0;scanf(%u,input);print(input);return0;}例题三strlen函数的实现方法一遍历#includestring.hintmy_strlen(charstr[])//参数部分写成数组的形式intmy_strlen(char*str)//参数部分写成指针的形式{intcount0;//计数临时变量while(*str!\0){count;str;//找下一个字符}returncount;}方法二递归//my_strlen(abc);//1my_strlen(bc);//11my_strlen(c);//111my_strlen();//1110//intmy_strlen(char*str){if(*str!\0)return1my_strlen(str1);elsereturn0;}intmain(){chararr[]abc;//[a b c \0]//char*intlenmy_strlen(arr);printf(%d\n,len);return0;}例题四斐波那契数列方法一递归intFib(intn){if(n2)return1;elsereturnFib(n-1)Fib(n-2);}方法二迭代intFib(intn){// 处理边界情况第1、2项直接返回1if(n1||n2){return1;}inta1;intb1;intc0;while(n3){cab;ab;bc;n--;}returnc;}

更多文章