题解 | #skew数#
skew数
https://www.nowcoder.com/practice/5928127cc6604129923346e955e75984
#include<iostream> #include<string> using namespace std; // 返回2的i次方,可以直接使用左移运算 unsigned long long int f(int i) { //这个地方要用unsigned型,否则不满足题中条件 return 1ULL << i; } int main() { string s; unsigned long long int skew = 0; while (cin >> s) { skew = 0; for (int i = 0; i < s.size(); i++) { int k = s.size() - i; //此处k为题中的k+1 skew += (s[i] - '0') * (f(k) - 1); //按照ASCII码计算要减去‘0’ } cout << skew << endl; } return 0; }