二叉树的层序遍历与一个数阶乘中0的个数

#pragma once
#include <iostream>
#include <stack>
#include <queue>
#include <stdio.h>
#include <assert.h>
using namespace std;
/*#################################################
层序遍历:先遍历左子树,再遍历右子树
先遍历i  再遍历2*i+1   再遍历2*i+2
遍历时,把它放入队列中,为下一层遍历做准备
重复子过程
利用队列:先把根节点放入队列中
再进行循环,拿出节点,打印,再存入子节点(左右孩子)
####################################################*/
typedef struct BinaryTreeLeverOrder
{
	int value;
	struct BinaryTreeLeverOrder* Lchild;
	struct BinaryTreeLeverOrder* Rchild;
}Node;


void LeverOrder(Node* root)
{
	assert(root);
	queue<Node*> QueueNode;
	Node* prater = root;
	QueueNode.push(prater);//先把父节点放进去
	while (QueueNode.size())
	{
		Node* pnode = QueueNode.front();
		QueueNode.pop();
		cout << pnode->value ;
		if (pnode->Lchild != NULL)
		QueueNode.push(pnode->Lchild);
		if (pnode->Rchild != NULL)
		QueueNode.push(pnode->Rchild);
	}
}





/*#########################################################
输入10   则判断10!(10的阶乘末尾有几个零)
展开:1*2*3*4*5*6*7*8*9*10
   只有  2*5    *10会得到零(10也是2*5)
   可以从2   和5 出发,又因为一个数阶乘中2的数目明显多于5的数目
   则可计算5的数目,就可以得到多少个零
 ##########################################################*/

int JudgeFactorialOfZero(const unsigned int N)
{
	unsigned int i = 1;
	int count = 0;
	while (i <= N)
	{
		int j = i;
		while (j % 5 == 0)//有一个或多个5
		{
			count++;
			j = j / 5;
		}
		i++;
		
	}
	return count;
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值