C++で1からNまでの合計桁数をカウントします
入力として数値Nが与えられます。目標は、数字の1からNまでの合計桁数を数えることです。1から9の数字はそれぞれ1桁、11から99はそれぞれ2桁、100から999はそれぞれ3桁というようになります。
例を挙げて理解しましょう
入力 − n =11
出力 −1からNまでの合計桁数は次のとおりです。13
説明 − 1から9までの数字はそれぞれ1桁です:9桁10、11はそれぞれ2桁です。 4桁。合計桁数=9+ 4=13。
入力 − n =999
出力 − 1からNまでの合計桁数のカウントは次のとおりです:2889
説明 − 1から9までの数字はそれぞれ1桁です:9桁10から99まではそれぞれ2桁です。 :180桁。 100〜999はそれぞれ3桁です:2700桁合計桁数=2700 + 180 + 9=2889桁
以下のプログラムで使用されているアプローチは次のとおりです
2つのアプローチを使用します。再帰関数を使用して数値numの桁を計算する最初の単純なアプローチ。渡されたnumを文字列に変換します。文字列の長さは数字の数字です。現在のnum-1を再帰的にバイパスする番号ごとにこれを実行します。
-
数値を正の整数とします。
-
関数total_digits(int num)はnumを取り、1からnumまでの数字の数字を返します。
-
numの数字を計算するには、numを文字列に変換します。 (to_string(num))。
-
文字列の長さは数字の数字です。
-
numが1の場合、1を返します。それ以外の場合は、num未満の残りの数値に対してlength + total_digits(num-1)を返します。
-
最終的に、結果として合計桁数が取得されます。
効率的なアプローチ
このアプローチでは、Nまでの数値ごとに10、100、1000をトラバースするロジックを使用します。10iごとに、桁数は(num-i + 1)です。
-
数値を正の整数とします。
-
関数total_digits(int num)はnumを取り、1からnumまでの数字の数字を返します。
-
最初は合計数を0とします。
-
i=1をi<=numまでトラバースし、各反復でiを10ずつインクリメントし、カウントにnum-i+1を追加します。
-
結果として、forループの最後のカウントを返します。
例(素朴なアプローチ)
#include <bits/stdc++.h> using namespace std; int total_digits(int num){ string str = to_string(num); int length = str.length(); if (num == 1){ return 1; } return length + total_digits(num - 1); } int main(){ int num = 20; cout<<"Count of total number of digits from 1 to n are: "<<total_digits(num); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of total number of digits from 1 to n are: 31
例(効率的なアプローチ)
#include <bits/stdc++.h> using namespace std; int total_digits(int num){ int count = 0; for(int i = 1; i <= num; i *= 10){ count = count + (num - i + 1); } return count; } int main(){ int num = 20; cout<<"Count of total number of digits from 1 to n are: "<<total_digits(num); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of total number of digits from 1 to n are: 31
-
C ++で{0、1、2、3、4、5}の数字を持つn番目の数値
数字{0、1、2、3、4、5}で形成された数字は 0、1、2、3、4、5、10、11、12、13、14、15、20、21、22、23、24、25など。 上記のシーケンスは、最初の6桁を使用して作成できます。数の形成の例を見てみましょう。 1 * 10 + 0 = 10 1 * 10 + 1 = 11 1 * 10 + 2 = 12 1 * 10 + 3 = 13 1 * 10 + 4 = 14 1 * 10 + 5 = 15 同様に、番号2、3、4、5を申請します。上記のパターンを使用して、2で次の6つの番号を取得します。そして3、その後4と5。 アルゴリズム 番号nを初期化します。
-
C ++を使用してOpenCVのフレームの総数をカウントするにはどうすればよいですか?
OpenCVでフレームの総数を計算する方法を学びます。 OpenCVを使用すると、ビデオのフレームの総数をカウントして表示するのが基本です。ただし、リアルタイムビデオフレームの総数をカウントできないことに注意する必要があります。リアルタイム動画には特定のフレーム数がないためです。 次のプログラムは、合計フレーム数をカウントし、コンソールウィンドウに表示します。 例 #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; int main() { &