把一个二进制数转化为十进制数。
输入格式第一行一个正整数 n(1<=n<=30)表示二进制数的长度。
第二行一个二进制数。
输出格式输出一个整数,表示对应的十进制数。
输入样例:5 10101输出样例:
21
思路:运用getchar来把输入的数放入缓冲区,然后再定义一个数是2的第一个输入数的次方。然后使用while,以输入的第一个数是否大于0来成为while的条件,之后用if判断是否是1,是1就加,然后再最后让输入的第一个数减1。
#include#include int main() { char a,b,c;int d,e,i,f=0,g; e=0; scanf("%d",&d);i=pow(2,d);g=d; a=getchar(); while(d>=0){ if(a=='1'){ f+=i; } d--;g--;i=pow(2,g); a=getchar(); } printf("%dn",f); return 0; }



