題目描述
已知一個只包含 0 和 1 的二進制數(shù),長度不大于 10 ,將其轉(zhuǎn)換為十進制并輸出。
輸入描述
輸入一個二進制整數(shù)n,其長度不大于10
輸出描述
輸出轉(zhuǎn)換后的十進制數(shù), 占一行
樣例輸入
110
樣例輸出
6
解題思想
先利用char數(shù)組獲取輸入,再當(dāng)char[i]==1時調(diào)用power函數(shù)計算結(jié)果
最后返回結(jié)果
#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;
}