URI 1848 解决方案

URI 1848 solution

本文关键字:解决方案 1848 URI      更新时间:2023-10-16
#include <bits/stdc++.h>
#define endl 'n'
using namespace std;
int main() {
ios_base::sync_with_stdio(false);cin.tie(NULL);
string line;
int acc = 0;
while (cin >> line) {
if (line == "caw") {
cin >> line;
cout << acc << endl;
acc = 0;
} else {
int val = 0;
for (int i = 0; i < 3; ++i) {
val <<= 1;
val += line[i] == '*';
}
acc += val;
}
}
return 0;
}

我遇到了这个解决方案

谁能解释一下这个 val += 行 [i] == " * ";方法?

请帮忙!!!

由于运算符优先级val += line[i] == " * ";被计算为val += (line[i] == " * ");

val将递增 1(true转换为整数值 1),当且仅当line[i]true" * "进行比较时,否则它将保持不变。

最后#define endl 'n'调皮。不要尝试更改C++标准库中的符号。