day6学习笔记

day6学习笔记

  1. 递归
      自己调用自己,或者相互调用。可以大幅度降低解决问题的难度,任何递归都可以用循环来写。

  要把握两点
  1、找到递归的公式(靠练,没做过的话短时间很难找到公式)
  2、找到结束条件

  阶乘
  F(n)=n*f(n-1)
  结束条件 n=1

  递归中难度较大的汉诺塔问题
  将a柱上的盘子放到c柱上:
  1.借助c柱将n-1个盘子放在b柱上
  2.将a柱剩下的一个盘子放在c柱上
  3.借助a柱将n-1个盘子放在c柱上
  不需要知道具体怎么做,抽象思维,交给计算机
  三个盘子的算法运行轨迹(感觉极其复杂,一次性难以掌握)
三个盘子的算法运行轨迹

  1. 全局变量
      不能在头文件里定义,因为头文件在多个.c文件里被引用,会导致全局变量被多次初始化。
      使用extern int k可以用来告知编译器变量在当前范围之外声明过了.
      被extern语句描述过的变量将分派不到任何空间,因为他们在别的地方被定义过了.
    3.Static关键字
      用static修饰的数据,被分配在数据区,不在函数的栈(堆)空间。
      修饰局部变量:变量只会初始化一次。静态局部变量和全局变量的区别是静态局部变量只在定义的大括号内有效。(静态局部变量的适用场所一般是统计函数执行次数)
      修饰全局变量:让全局变量只在本文件有效。
      修饰函数:函数只能在该文件内被调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值