题目大意:输入值求对应题目算法的结果。例:(10120skew = 1×(25 −1)+ 0×(24 −1)+ 1×(23 −1)+ 2×(22 −1)+ 0×(21 −1) = 31+ 0+ 7+ 6+ 0 = 44)
解题思路:直接计算,担心超出范围,用long long。字符串存输入的值。
ac代码:
#include <iostream>
#include <cstring>
using namespace std;
char st[1005];
long long sum, len;
int main()
{
while (scanf("%s", st)!=EOF && st[0]!='0'){
len = strlen(st);
sum = 0;
for (int i=len-1,n=2; i>=0; i--,n*=2)
sum += (st[i]-'0') * (n-1);
printf("%lld\n", sum);
}
return 0;
}