700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 0016 c/c++语言 二进制转换为十进制

0016 c/c++语言 二进制转换为十进制

时间:2018-10-20 07:46:46

相关推荐

0016 c/c++语言 二进制转换为十进制

题目描述

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。