自学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;
//}
//汉诺塔问题
//青蛙跳台阶问题
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
