把一个二进制数转化为十进制数。
输入格式
第一行一个正整数n (1≤n≤30),表示二进制数的长度。
第二行一个二进制数。
输出格式
输出一个整数,表示对应的十进制数。
Sample Input
5 10101
Sample Output
21
#include<stdio.h>
#include<math.h>
int main(){
char ch;//将ch用char定义为字符
int x,i=0,s=0;
scanf("%d",&x);//输入字符长度
for(i=x;i>=0;i--)
{
scanf("%c",&ch);
if(ch=='1')
{
s+=pow(2,i);
}
}
printf("%d\n",s);//输出转化后的十进制数
return 0;
}
解题思路
本题是用二进制转化为十进制输出,且要输入二进制字符的长度,因此需要两个scanf,其中需要用到库函数,因此还需要写上#include<math.h>,确保函数引用成功。最后输出s,即转化后的十进制数。