分类目录归档:C++学习

c++语言学习,典型案例学习,c++入门教程,实例源码讲解,红颜丽人博客C++学日记,C++语言程序设计,数据结构基础算法应用,零基础学习c++等内容。

c++算法阶乘N!



问题描述

1、给定一个整数N,阶乘N!末尾有多少个0

2、求N!的二进制表示中最低位1的位置

1、给定一个整数N,阶乘N!末尾有多少个0

举例:10!=3 628 800,则 N!的末尾有两个0

思路:

即,知道 Z ,就知道N!中含有0的个数

方法[......]

Read more

c++内存管理(2)指针与数组的对比



内存管理(2)

7.3 指针与数组的对比

(1) 数组:

分配内存位置:在静态存储区被创建(如全局数组) 或   在栈上被创建

特点:数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。

sizeof(数组名) = 数组的总容量[......]

Read more

c++内存管理内存分配实例源码(1)

c++内存管理内存分配实例源码(1),c++内存管理(1)。

7.1 内存分配方式

一个C、C++程序编译时内存分为5大存储区:堆区、栈区、全局区、文字常量区、程序代码区。

(1) 在静态存储区域分配

控制者:编译器

分配时间:在程序编译的时候分配内存

释放时间:[......]

Read more

c++函数设计变量的合法性使用断言

在函数 或 代码 前后 判断参数 或 变量的合法性

方法:使用断言 assert

作用:用来检查一些必须符合的条件,捕捉 “不应该” 发生的非法情况,如果不符合条件,则不让程序继续运行下去。

使用时间 &  位置:

前置条件断言:代码执行之前 或 在函数的入口处,使用[......]

Read more

c++表达式和基本语句

c++表达式和基本语句。

与零值比较

4.3.1 布尔变量与零值比较

[cpp] view plaincopy

  1. //直接使用变量名判断
  2. 推荐风格
  3. if (flag) // 表示flag 为真
  4. if (!flag) // 表示flag 为假
  5. [......]

Read more

c++数据结构与算法之堆

c++数据结构与算法之堆。

1. 概述

堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。

2. 堆的基本操作

堆是一棵完全二叉树,高度为O(lg[......]

Read more

c++数据结构之Treap

c++数据结构之Treap。1. 概述

同splay tree一样,treap也是一个平衡二叉树,不过Treap会记录一个额外的数据,即优先级。Treap在以关键码构成二叉搜索树的同时,还按优先级来满足堆的性质。因而,Treap=tree+heap。这里需要注意的是,Treap并不是二叉堆,二[......]

Read more