3980. 二进制转十进制
Description
输入一个非负的二进制整数,将其转为十进制.
Input
输入的第一行是一个整数T,表示总共有T组数据.
接下来的T行,每行是一组数据,每组数据是一个只包含字符0和1的字符串,代表待转换的二进制数,字符串的长度不大于31.
Output
对于每个二进制数,输出其对应的十进制数,每个数占一行. 注意输出的十进制不要有多余的前导0.
Sample Input
Copy sample input to clipboard
3 100 001 10100
Sample Output
4 1 20
Problem Source: 林瀚
#include <iostream> #include <stdio.h> #include <string> #include <string.h> #include <math.h> using namespace std; int main () { int t; cin>>t; while (t--) { string a; cin>>a; int count = 0; int j = 0; for (int i = a.length() - 1; i >= 0; i--) { if (a[i] != '0') { count += pow(2,j); } j++; } cout<<count<<endl; } //system("pause"); return 0; }