#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
void test0()
{
int base[31];
base[0]=1;
int i;
for(i=1;i<31;i++)
{
base[i]=2*base[i-1]+1;
}
while(1)
{
char n[32];
scanf("%s",n);
//int strcmp(const char* str1, const char* str2);
//如果 str1 和 str2 相等,返回值为 0。
//如果 str1 按字典顺序小于 str2,返回值为负数。
//如果 str1 按字典顺序大于 str2,返回值为正数。
if(strcmp(n,"0")==0)
break;
int sum=0;
//strlen返回字符个数,如:112,返回3
int k=strlen(n);
int j=k;
for(i=0;i<k;i++)
{
j--;
sum+=(n[i]-'0')*base[j];
}
printf("%d\n",sum);
}
}
int main()
{
test0();
return 0;
}
北京大学 POJ 2973 Skew数
最新推荐文章于 2024-09-02 23:09:18 发布