>  기사  >  백엔드 개발  >  숫자 0을 만드는 데 필요한 최소 연산 수를 찾는 C++ 프로그램

숫자 0을 만드는 데 필요한 최소 연산 수를 찾는 C++ 프로그램

王林
王林앞으로
2023-08-26 14:01:14793검색

숫자 0을 만드는 데 필요한 최소 연산 수를 찾는 C++ 프로그램

n개의 숫자를 포함하는 숫자 문자열 S가 있다고 가정합니다. S가 디지털 시계를 나타내고 전체 문자열이 0부터 10^n - 1까지의 정수를 표시한다고 가정합니다. 자릿수가 적으면 앞에 0이 표시됩니다. 다음 단계를 따르세요.

  • 시계의 숫자를 1씩 줄이거나

  • 두 자리 숫자를 바꿉니다. p>

우리는 최소한의 작업 횟수로 시계가 0을 표시하길 원합니다. 이 작업을 완료하는 데 필요한 작업 수를 계산해야 합니다.

입력이 S = "1000"과 같은 경우 출력은 2가 됩니다. 첫 번째 1을 마지막 0으로 바꿀 수 있으므로 문자열은 "0001"이 되며 이제 1을 빼면 "0000"이 됩니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

n := size of S
x := 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 &#39;0&#39;, then:
      x := x + (digit at place S[i]) + 1
return x

Example

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. -

#include <bits/stdc++.h>
using namespace std;

int solve(string S) {
   int n = S.size();
   int x = S[n - 1] - &#39;0&#39;;
   for (int i = 0; i <= n - 2; i++)
      if (S[i] != &#39;0&#39;)
         x = x + S[i] + 1 - &#39;0&#39;;
   return x;
}
int main() {
   string S = "1000";
   cout << solve(S) << endl;
}

Input

"1000"

Output

2

위 내용은 숫자 0을 만드는 데 필요한 최소 연산 수를 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제