#include <iostream> #include <string> #include <vector> using namespace std;
int main() { int sum = 0; vector<int> v; string s; cin >> s; for (int i = 0; i < s.size(); ++i) { v.push_back((int)s[i] - 49); ++sum; ++v[i]; } int z = sum % 3; z = 3 - z; { int i = 0; while (i <= v.size() && (v[i] + z) > 9) { ++i; } if (i >= v.size()) { if (z == 3) { v[v.size() - 1] -= 3; } else { v[v.size() - 1] -= (3 + z); } } else { v[i] += z; while ((v[i] + 3) < 9) { v[i] += 3; } } } for (int i = 0; i < v.size(); ++i) { cout << v[i]; } return 0; }
annanudehead1426
22.01.2023
Для удобства вычислений считаем, что ширина диапазона дискретизации составляет 100 В (т.е. напряжение может быть равно 0, 1, 2, .. 99 В). При этом получаются 5 интервалов 0 - 19 В 20 - 39 В 40 - 59 В 60 - 79 В 80 - 99 В Значение 54 В попадает в третий интервал и напряжение после дискретизации считается равным 40В (нижняя граница диапазона).
Если очень важно, чтобы и 100В попадало в диапазон дискретизации, то его ширина будут равна 101 В, что потребует ввести поправку 0.2В в границы интервалов. ответ на задачу при этом изменится и будет нецелым.