宝盈集团直营网站怎么做,网站设计规划图,WordPress人物插件,怎么做电商新手入门递归 ○ 算法思想#xff1a;
递归算法分为两大阶段 : 递和归#xff0c;即就是有去#xff08;递去#xff09;有回#xff08;归来#xff09;。
递去#xff1a;将递归问题分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决。归… 递归 ○ 算法思想
递归算法分为两大阶段 : 递和归即就是有去递去有回归来。
递去将递归问题分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决。归来当你将问题不断缩小规模递去的时候,必须有一个明确的结束递去的临界点(递归出口),一旦达到这个临界点即就从该点原路返回到原点最终问题得到解决。
○ 递归的要素
递归终止的条件递归操作
○ 案例应用 猴子吃桃问题
#define _CRT_SECURE_NO_WARNINGS 1
#include stdio.hint main() {//递归的要素1.递归终止的条件// 2.递归操作//递归函数(语义--[参数列表])//猴子吃桃问题有一堆桃第一天吃了一半觉得好吃多吃了一个第二天吃了剩下的一半觉得好吃又多吃了一个第三天....第四天剩了一个问一共多少桃子printf(输入天数:);int days 0;scanf(%d, days);int nums monkeyEatPeach(days);printf(有%d桃子\n, nums);return 0;}//递归函数int monkeyEatPeach(int day) { //倒数天数//终止条件if (day 1) {return 1;}//递归操作return (monkeyEatPeach(day - 1) 1) * 2;return 0;}求一个数的阶乘
#define _CRT_SECURE_NO_WARNINGS 1 /* 求n! */
#include stdio.h
//声明一个函数wn,来求阶乘
int wn(int n) {//递归终止条件if (n 0 || n 1) {return 1;}//递归操作return n * wn(n - 1);
}
int main() {int n 0;printf(请给n赋值);scanf(%d, n);printf(%d!%d\n, n, wn(n));//调用函数return 0;
} 查找斐波那契数列的某一项
#define _CRT_SECURE_NO_WARNINGS 1//斐波那契数列(查找第n项
#includestdio.h
int fib(int n) {//终止条件if (n 1|| n 2) {return 1;}//递归操作return(fib(n - 1) fib(n - 2));
}
int main() {int n 0;printf(请输入要查找的项数n:);scanf(%d, n);int res fib(n); //调用函数printf(斐波那契数列的第%d项 %d\n, n, res);return 0;
} 函数 ● 知识回顾 : ○ 一个函数只能完成一个功能. ○ 定义函数 返回值类型 函数名 (参数列表{ 函数体 } ○ 定义函数的作用 代码复用 模块化开发 ○ 函数是不能嵌套定义的,但能嵌套调用. ○ 函数的链式访问将函数的返回值作为另一个函数返回值的参数. ○ 常用库函数 查函数文档 : http://www.dotcpp.com/course/lib/ 数组 ○ 知识回顾 :
• 数组的访问 : 数组名[索引]
• 数组名指的是数组中首元素的地址 ; 有两个特殊数组名指的是整个数组 1. 数组名 2. sizeof(数组名)
• 地址的运算 : 地址(-)n 地址偏移n个元素的大小
• 数组在内存中连续分配空间,基于这个特点: arr n arr[n] arr[n] *(arrn) ;
• 在使用数组时,注意越界问题 索引[0 , length-1]
• 如何计算长度 sizeof(arr) / sizeof(arr[0])
• 数组作为参数 function( 数组名 , length ) ; function(int* arr,int length);
• 在函数中是否可以获取数组的长度 不行