水题,模拟题,用字符数组存放输入数据就行。
#include <stdio.h>
#include <string.h>
#define mem(a) memset(a, 0, sizeof(a))
char ch[35];
long ans = 0;
long cc(int n, int i)
{
int j;
long k = n;
for(j = 1;j < i;j++)
{
k *= n;
}
return long(k);
}
void res(int len)
{
int i;
ans = 0;
for(i = 0;i < len;i++)
{
ans += ((ch[i] - '0') * (cc(2, len - i) - 1));
}
printf("%ld\n", ans);
}
int main(int argc, char *argv[])
{
int len;
mem(ch);
while(gets(ch))
{
len = strlen(ch);
if(len == 1&&ch[0] == '0')
break;
res(len);
mem(ch);
}
return 0;
}