数制转换问题:skew

//poj:2973
#include<stdio.h>
#include<string.h>

int main()
{
	int i,k,base[31];
	char skew[32];
	base[0]=1;
	for(i=1;i<32;i++)
		base[i]=2*base[i-1]+1;
	while(1)
	{
		scanf("%s",skew);
		if(strcmp(skew,"0")==0)
			break;
		k=strlen(skew);
		int sum=0;
		for(i=0;i<strlen(skew);i++)
		{
			k--;
			sum+=(skew[i]-'0')*base[k];
		}
		printf("%d\n",sum);
	}
	return 0;
}

posted on 2015-06-12 09:47  _noname  阅读(119)  评论(0编辑  收藏  举报