1.进制转化

2019-04-21  本文已影响0人  据分专家

题目描述

已知一个只包含 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;
}

上一篇 下一篇

猜你喜欢

热点阅读