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

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

王林
풀어 주다: 2023-08-26 14:01:14
앞으로
859명이 탐색했습니다.

숫자 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿