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

最初の桁がC++の数値の最後の桁と等しい範囲内の数値の数


開始と終了の間の数値の範囲が与えられます。目標は、最初の桁が最後の桁と等しく、[first、last]の範囲内にある数値の数を見つけることです。

範囲内にある場合、すべての1桁の数字がカウントされます。

例を挙げて理解しましょう。

入力- 開始=100、終了=200

出力- 最初の桁が数値の最後の桁と等しい範囲内の数値の数は次のとおりです。10

説明- 番号は次のようになります:

101、121、131、141、151、161、171、181、191。

入力- 開始=1、終了=10

出力- 最初の桁が番号の最後の桁と等しい範囲内の番号の数は次のとおりです。9

説明- 1桁の数字はすべてカウントされます。 1、2、3、4、5、6、7、8、9

以下のプログラムで使用されているアプローチは次のとおりです

[start、end]の範囲にある場合、すべての1桁の数字がカウントされます。次に、番号ごとに最初と最後の桁を確認します。最初の桁が最後の桁よりも大きい場合は、カウントに8 + val / 10を追加し、小さい場合は、カウントに9 + val/10を追加します。ここで、valはrange(int val)への再帰呼び出しの現在の番号です。

  • 整数の開始と終了を範囲変数として使用します。
  • set count =range(end)-range(start)。
  • 関数range(int val)は整数を取り、最初の桁が数値の最後の桁と等しいRange内の数値の数を返します。
  • 初期カウントを0とします。
  • 末尾をval%10の最後の桁とします。
  • 1桁の数値(10未満)の場合はvalを返します。
  • ここで、whileループを使用してstart =val%10として計算します。 valを10減らします。したがって、開始には最初の桁が含まれます。
  • ここで、start <=endの場合、カウントに9 + set_val/10を追加します。
  • ここで、start> endの場合は、8 + set_val/10を追加してカウントします。
  • 最後に結果としてカウントを返します。

#include <iostream>
using namespace std;

int range(int val) {
   int count = 0;
   int start;
   int end = val % 10;
   int set_val = val;

   if (val < 10) {
      return val;
   }
   end = val % 10;
   while (val) {
      start = val % 10;
      val = val / 10;
   }
   if (start <= end) {
      count = 9 + set_val / 10;
   } else {
      count = 8 + set_val / 10;
   }
   return count;
}
int main() {
   int start = 10, end = 50;
   int count = range(end) - range(start);
   cout << "Count of Numbers in Range where first digit is equal to last digit of the number are: " << count;
   return 0;
}

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

出力

Count of Numbers in Range where first digit is equal to last digit of the number are: 4


  1. C ++では、係数が最小の範囲内のすべての数値をKとしてカウントします。

    このチュートリアルでは、係数がKとして最小の範囲の数値を見つけるプログラムについて説明します。 このために、範囲[a、b]が提供されます。私たちのタスクは、与えられた範囲内で、係数がKとして最小である数を数えることです。 例 #include <bits/stdc++.h> using namespace std; //checking if K is a prime bool if_prime(int k){    if (k <= 1)       return false;    for (int

  2. 数値の配列の積の最初の桁を見つけるC++プログラム

    この記事では、指定された配列の要素の積の最初の桁を見つけるプログラムについて説明します。 たとえば、配列が与えられたとしましょう。 arr = {12, 5, 16} その場合、これらの要素の積は12 * 5 * 16 =960になります。したがって、結果、つまりこの場合の積の最初の桁は9になります。 例 #include <bits/stdc++.h> using namespace std; int calc_1digit(int arr[], int x) {    long long int prod = 1;    for(in