把一个二进制数转化为十进制数。
输入格式
第一行一个正整数 n (1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
输出格式
输出一个整数,表示对应的十进制数。
Sample Input
5 10101
Sample Output
21
思路
因为要用到pow函数,所以用math头文件。
因为n大于1小于30,所以不用int表示,用getchar逐个扫描,因为getchar为从左到右,且多输出两
个换行符,所以i从n开始循环到0结束。也就是2的四次方加2的二次方加2的零次方。
既2^4+2^2+2^0=21.
#include<stdio.h>
#include<math.h>
int main(){
int i,n,b=0;
char a;
scanf("%d",&n);
for(i=n;i>=0;i--)
{a=getchar();
if(a=='1')
b+=pow(2,i);
}
printf("%d\n",b);
return 0;
}