题目描述
已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。
输入描述
输入一个二进制整数n,其长度大于0且不大于10
输出描述
输出转换后的十进制数, 占一行
样例输入
110
样例输出
6
核心步骤
if(0<n.length()&&n.length()<=10){ //要求输入n的长度一定不大于10
for(int i=0;i<n.size();i++){
if(n[i]=='1'){
int j = pow(2,n.size()-1-i); //pow函数(double x,double y)求x的y次方
sum +=j;
}
}
}
else{
cout <<"超出范围.";
}
总体代码
#include <iostream>
#include <cmath>
using namespace std;
int main(){
string n; //输入的n要设置为字符串类型,只有这样才能通过length和size知道长度
int sum=0;
cin>>n;
if(0<n.length()&&n.length()<=10){ //要求输入n的长度一定不大于10
for(int i=0;i<n.size();i++){
if(n[i]=='1'){
int j = pow(2,n.size()-1-i); //pow函数(double x,double y)求x的y次方
sum +=j;
}
}
}
else{
cout <<"超出范围.";
}
cout<<sum;
return 0;
}