In this Leetcode Cars in the Lane problem solution, You are given the ID of different uni-directional highways in the ByteLand. The highways are quite mysterious. If you convert their IDs to a binary number then it means that in the bit position where the value is 0, those lanes are closed, or else the lanes are open. Now for each highway, you need to count in how many ways the open lanes of the highway can be occupied.


HackerEarth Cars in the Lane problem solution


HackerEarth Cars in the Lane problem solution.

#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const ll M=1e9+7;
ll inf=1e18;

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    ll t;
    cin>>t;
    while(t--)
    {
    ll n,cnt=0;
    cin>>n;
    for(ll i=0;i<64;i++)
    {
        if((n&(1LL<<i)))
        {
            cnt++;
        }
    }
    cout<<(1LL<<cnt)<<"\n";
    }
    return 0;
}

Second solution

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    cin >> t;
    int cnt;
    long long n;
    while(t --) {
        cnt = 0;
        cin >> n;
        while(n) {
            if(n & 1)
                cnt ++;
            n >>= 1;
        }
        long long ans = 1;
        for(int i = 1; i <= cnt; i ++)
            ans <<= 1;
        cout << ans << '\n';
    }
    return 0;
}