C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

指定された数値の最小桁を見つけるC++プログラム


非負の数が与えられた場合、タスクはその最小の桁を見つけることです。

入力:

N = 154870

出力:

0

説明: 指定された番号「154870」では、最小の桁は「0」です。

この問題を解決するためのアプローチ

この問題を解決する最も簡単な方法は、剰余を使用して指定された番号の最後の桁を抽出することです。 定理 。数値をトラバースしながら、抽出された桁が最後の桁よりも小さいかどうかを確認してから、出力を返します。

  • 番号をとるn 入力として。
  • 整数関数smallest_digit(int n)は、入力として「n」を取り、指定された数値の最小桁を返します。
  • ここで、minを指定された数値の最後の桁として初期化します。
  • 番号を繰り返し処理し、抽出された番号が最小数より少ないかどうかを確認します。 trueの場合、最小数を更新して出力を返します。
  • 最後の桁をn/10だけ削除し、現在の桁よりも小さい別の桁があるかどうかを確認します。
  • 出力を返します。

#include <iostream>
using namespace std;
int smallest_digit(int n) {
   int min = n % 10; //assume that last digit is the smallest
   n /= 10; //to start from the second last digit
   while (n != 0) {
      if (min > n % 10)
         min = n % 10;
      n /= 10;
   }
   return min;
}
int main() {
   int n = 154870;
   cout << smallest_digit(n);
   return 0;
}

上記のコードを実行すると、次のように出力が生成されます

出力

0

説明 :指定された番号「154870」の最小桁は「0」です。


  1. 各桁が異なる特定の範囲の数値を検索するC++プログラム

    2つの数lとrがあるとします。 lとr(両方を含む)の間にあり、xのすべての数字が異なる整数xを見つける必要があります。 したがって、入力がl=211のような場合。 r =230の場合、出力は213になります。 ステップ これを解決するには、次の手順に従います- for initialize k := l, when k <= r, update (increase k by 1), do:    h := convert k to string    Define one set s    for initialize i

  2. 与えられたグラフのブリッジエッジの数を見つけるためのC++プログラム

    n個の頂点とm個のエッジを含む重み付けされていない無向グラフが与えられたとします。グラフのブリッジエッジは、グラフを削除するとグラフが切断されるエッジです。与えられたグラフでそのようなグラフの数を見つける必要があります。グラフには、平行なエッジや自己ループは含まれていません。 したがって、入力がn =5、m =6、edges ={{1、2}、{1、3}、{2、3}、{2、4}、{2、5}、{3 、5}}の場合、出力は1になります。 グラフには、{2、4}のブリッジエッジが1つだけ含まれています。 これを解決するには、次の手順に従います- mSize := 100 Define an