ホームページ > バックエンド開発 > C++ > 数値を 0 にするために必要な最小演算数を求める C++ プログラム

数値を 0 にするために必要な最小演算数を求める C++ プログラム

王林
リリース: 2023-08-26 14:01:14
転載
874 人が閲覧しました

数値を 0 にするために必要な最小演算数を求める C++ プログラム

n 桁を含む数値文字列 S があるとします。 S がデジタル時計を表し、文字列全体が 0 ~ 10^n - 1 の整数を表示するとします。桁数が少ない場合は、先頭に 0 が表示されます。次の手順に従ってください -

  • #時計の数字を 1 減らすか、

  • 2 桁を入れ替えます p>

最小限の操作で時計が 0 を表示するようにします。この操作を完了するために必要な操作の数を計算する必要があります。

したがって、入力が S = "1000" のような場合、最初の 1 と最後の 0 を交換できるため、出力は 2 になり、文字列は "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
ログイン後にコピー

理解を深めるために、次の実装を見てみましょう-

#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;
}
ログイン後にコピー

入力

"1000"
ログイン後にコピー

出力

2
ログイン後にコピー

以上が数値を 0 にするために必要な最小演算数を求める C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート