赞
踩
题目描述
输入一个二进制数(仅由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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。