又是十进制转换成二进制问题

把一个十进制数转换成二进制数并输出。

Input

输入的第一行为一个整数m,表示测试用例的个数;接下来有m行,每行表示一个测试用例,
每个测试用例为一个十进制数n,1<=m<=20;1<=n<=2000000000。

Output

对于每一个测试用例,输出十进制整数n对应的二进制数在一行输出,多个测试用例的结果顺序输出,
之间没有空行,整数前不加无效的0。

Sample Input

2
25
8

Sample Output

11001
1000
#include<bits/stdc++.h>
using namespace std;
int i,i0,n,m,T;
vector<int>ans;
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        ans.clear();
        long long n,p=1;
        scanf("%lld",&n);
        int x=0;
        while(n>=p)
        {
            ans.push_back(!!(n&p));
            x++,p*=2;
        }
        reverse(ans.begin(),ans.end());
        for(int i=0;i<ans.size();i++)printf("%d",ans[i]);
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44061561/article/details/94555334