题解 | 二叉树

#include <bits/stdc++.h>
using  namespace std;

int ans=0;

void countT(int a,int n){
    if(a>n)return;
    ans++;
    countT(a*2,n);
    countT(a*2+1,n);
}

int main(){
    int m,n;
    while(cin>>m>>n){
        countT(m,n);
        cout<<ans<<endl;
        ans=0;
    }
}

本题主要分享一下递归的写法,本题用递归是显而易见的,递归的写法个人的习惯是先写出来递归的过程,然后写递归中的操作,这里的递归就是二叉树的向下移动,直到超越边界结束,移动就是*2 和 *2+1,然后写递归过程,就是统计。最后因为我们的ans用的全局变量,所以别忘了归零

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-01 12:08
字节跳动 后端 28×15 硕士211
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-12 12:04
拼多多 服务端开发 34k * (16-18) 本科985
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务