求第一个以(2^(k+1)-1)为进制的数。
数据不大,可以直接搞。
代码:
#include <stdio.h>
#include <string.h>
const int maxn = 100 + 5;
int main()
{
char num[maxn];
while (scanf("%s", num) == 1)
{
if (num[0] == '0')
break;
int len = strlen(num);
int sum = 0;
int t = 2;
for (int i = len - 1; i >= 0; i--)
{
sum += (t - 1) * (num[i] - '0');
t <<= 1;
}
printf("%d\n", sum);
}
return 0;
}