C++で最初と最後の桁が同じ数を数える
これを行うには、i=firstからi=lastまでトラバースします。数字ごとに、最初の桁と最後の桁を比較します。同じ場合は、カウントを増やします。
例を挙げて理解しましょう。
入力 −最初=8最後=40
出力 −最初と最後の桁が同じ数の数− 5
説明 −最初と最後の数字が同じ8から40までの数字-
8, 9, 11, 22, 33
入力 −最初=100最後=200
出力 −最初と最後の桁が同じ数の数:5
説明 −最初と最後の数字が同じ100から200までの数字-
101, 111, 121, 131, 141, 151, 161, 171, 181, 191.
以下のプログラムで使用されているアプローチは次のとおりです
-
最初と最後の2つの整数を使用して、範囲[first、last]を定義します。
-
関数getFirstDigit(int num)は数値を受け取り、その最初の桁を返します。
-
num> =10の場合、numを10で割ります。最後にnumは最初の桁になります。この値を返します。
-
関数getCount(int fst、int lst)は範囲変数を受け取り、最初と最後の桁が同じである数値の数を返します。
-
初期カウントを0とします。
-
i=fstからi=lstまでのforループ開始を使用して、各iについて、getFirstDigit(i)を呼び出して最初の桁を計算し、fdigitに格納します。 (fdigit =getFirstDigit(i))。
-
最後の桁をldigit=i%10として計算します。
-
ldigit ==fdigitの場合、それらが同じであることを意味します。インクリメントカウント。
-
結果としてカウントを返します。
例
#include <bits/stdc++.h> using namespace std; //to find starting digit int getFirstDigit(int num){ while (num >= 10) { num = num/ 10; } return num; } int getCount(int fst,int lst){ int count=0; for(int i=fst;i<=lst;i++){ int fdigit=getFirstDigit(i); int ldigit=i%10; //to get last digit if(fdigit==ldigit) //if both are equal increment count { ++count; } } return count; } int main(){ int first = 10, last = 23; cout<<"Numbers with same first and last digits:"<<getCount(first, last); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Numbers with same first and last digits:2
-
C++では偶数桁と奇数桁の合計の絶対差が1であるすべてのn桁の数値を出力します
この問題では、整数nが与えられ、偶数と奇数の桁の合計の絶対差が等しくなるように、すべてのn桁の数値を出力する必要があります。は1です。0の先頭にある数字を作成している間は考慮されません。 絶対差 は、値が絶対値(正の値)である両方の数値の差です。 問題を理解するために例を見てみましょう- Input: n = 2 Output: 10 12 21 23 32 34 43 45 54 56 65 67 76 78 87 89 98 Explaination : taking an of the numbers from the output, 54, even digit - odd dig
-
C++の配列番号の積の最後のk桁を検索します
Aと呼ばれるn個の要素の配列があるとします。別の数kがあります。私たちのタスクは、配列Aの要素の積の最後のk桁を見つけることです。A=[15、22、13、19、17]とすると、積は1385670、最後のk=3桁は670です。 この問題を解決するために、10 kを法とする数値を乗算します。 。 例 #include<iostream> #include<cmath> using namespace std; int displayLastKNumbers(int array[], int n, int k) { int mod = (int)