题解 | 二叉树

二叉树

https://www.nowcoder.com/practice/f74c7506538b44399f2849eba2f050b5

完全二叉树从1开始编号,可以利用父结点和子节点的下标关系,通过递归来统计m所在的子树(左子树根节点编号为2*m,右子树为2*m+1)中所有编号小于n的结点个数即可。

#include<stdio.h>
using namespace std;
int fun(int m, int n) {
	if (m > n)return 0;
	else return fun(m * 2, n) + fun(m * 2 + 1,n) + 1;
	
}

int main() {
	int m, n;
	while (scanf("%d %d\n", &m, &n) != EOF) {
		if (m == n && n == 0)return 0;
		printf("%d\n",fun(m, n));

	}
	return 0;
}

计算机复试机试(王道版) 文章被收录于专栏

收录王道2026年计算机复试机试的(课程)代码题解,仅供个人学习参考

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务