【简要题意】:第二个是数字系统的代表性的定义。而给了你这个号码系统提示的形式和十进制转换之间的关系。现在给你一些这样的系统。让你把它变成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;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。