将时钟上的数字减 1,或
交换两位数字 p>
我们希望时钟能够以最少的操作次数显示 0。我们必须计算完成此操作所需的操作数。
因此,如果输入类似于 s = 1000,则输出将为 2,因为我们可以将前 1 与后 0 交换,所以字符串将是“0001”,现在将其减 1 得到“0000”。
步骤为了解决这个问题,我们将按照以下步骤操作 -
n := size of sx := digit at place s[n - 1]for initialize i := 0, when i <= n - 2, update (increase i by 1), do: if s[i] is not equal to '0', then: x := x + (digit at place s[i]) + 1return x
示例让我们看看以下实现,以便更好地理解 -
#include <bits/stdc++.h>using namespace std;int solve(string s) { int n = s.size(); int x = s[n - 1] - '0'; for (int i = 0; i <= n - 2; i++) if (s[i] != '0') x = x + s[i] + 1 - '0'; return x;}int main() { string s = "1000"; cout << solve(s) << endl;}
输入"1000"
输出2
以上就是c++程序以找到使数字为0所需的最少操作次数的详细内容。