题目描述
输入一个二进制数(仅由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;}