POJ 1565 Skew Binary(简单题)

来源:互联网 发布:话吧软件 编辑:程序博客网 时间:2024/04/30 15:41

【题意简述】:就是定义了另外一种数制的表示形式,并给了你这种数制表示形式与十进制的转换关系,现在给你一个这样的数制,让你把它换成2进制输出。

【分析】:其中 base[k]  =  2^(k+1)-1  =  2(2^k-1)+1  =  2base[k-1]+1

// 200K 0Ms#include<iostream>#include<cstring>using namespace std;int main(){int i,k,base[31],sum;char skew[32];base[0] = 1;for(i = 1;i<31;i++) base[i] = 2*base[i-1] + 1;while(1){cin>>skew;if(strcmp(skew,"0") == 0)break;sum = 0;k = strlen(skew);for(i = 0 ;i<strlen(skew);i++){k--;sum+=(skew[i] - '0')*base[k];}cout<<sum<<endl;}return 0;}


0 0