题目描述
已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。
输入描述
输入一个二进制整数n,其长度不大于10
输出描述
输出转换后的十进制数, 占一行
样例输入
110
样例输出
6
解题思想
先利用char数组获取输入,再当char[i]==1时调用power函数计算结果
最后返回结果
#include <iostream>
using namespace std;
int power (int x, int n){
int val = 1;
if (n==0&x!=0){
val=1;
} else{
while(n>0){
val=val*x;
n--;
}
}
return val;
}
int main(int argc, const char * argv[]) {
char ch[10];
int i=1;
int n;
int result=0;
cin>>ch;
do{
i++;
}while(ch[i]!='\0');
for(n=i-1;n>=0;n--)
{
if (ch[n]=='1')
{
result=result+power(2, i-1-n);
}
}
cout<<result<<endl;
return 0;
}
网友评论