显示原始代码
#include <bits/stdc++.h>
using namespace std;
void chu(vector<int> &A) {
int i, j = 0, k;
vector<int> ans;
for (i = 0; i < A.size(); i++) {
k = (j * 10 + A[i]) / 2;
j = (j * 10 + A[i]) % 2;
ans.push_back(k);
}
A.swap(ans);
}
int main() {
int i, j = 0, k = 0;
string a;
cin >> a;
vector<int> A, ans;
for (i = 0; i < a.size(); i++) A.push_back(a[i] - '0');
while (A[A.size() - 1] % 2 == 0) {
reverse(A.begin(), A.end());
for (i = A.size() - 1; i >= 0; i--) {
if (A[i] != 0)
break;
A.pop_back();
}
reverse(A.begin(), A.end());
if (A.size() == 1 && A[0] == 2) {
A[0] = 0;
break;
}
chu(A);
}
for (i = 0; i < A.size(); i++) k += A[i];
if (k % 3 == 0)
printf("Yes");
else
printf("No");
}