题目描述
输入一个二进制数(仅由0和1构成的整数),打印出该数对应的十进制数。
输入
第一行是测试数据的组数n,下面的n行每一行是一个二进制数。
输出
输出为n行,分别为对应输入的十进制数。
样例输入
2
11
110
样例输出
3
6
c++:
#include <iostream>
#include <string>
using namespace std;
int strToNum(string);
int pow(int);
void printArr(int *arr,int);
int main()
{
int n;
cin>>n;
int *result=new int[n];
string str;
for(int i=0; i!=n; ++i)
{
cin>>str;
int tmpResult=strToNum(str);
result[i]=tmpResult;
}
printArr(result,n);
delete []result;
return 0;
}
int strToNum(string s)
{
int s_len=s.size();
int t=0;
for(int i=0,j=s_len-1; i!=s_len; ++i,--j)
t+=(s[i]-'0')*pow(j);
return t;
}
int pow(int x)
{
int s=1;
while(x--)
s*=2;
return s;
}
void printArr(int *arr,int n)
{
for(int i=0; i!=n; ++i)
cout<<arr[i]<<endl;
return;
}