C++ を使用して、奇数桁で構成される N 番目の数値を見つけるプログラムを作成します。
C には、数学の問題を解決するための関数の膨大なリストがあります。数学関数の 1 つは、コードを使用して N 番目の奇数桁を見つけることです。この記事では、奇数の桁を見つける完全な方法を説明し、奇数とは何か、奇数の桁で構成されている数を理解します。
奇数桁で構成される N 番目の数を見つけます
奇数は 2 で割ったときに余りがあるため、最初のいくつかの奇数は 1、3、5、7、9、11 になります。 13、15、17、19...
必要な数を見つけるには、2 つの方法があります:
方法 1 - それぞれの自然数をチェックし、それが正しいかどうかを判断します。が奇数であり、カウントが n に等しくなるまで各奇数を数えます。見つかった数が偶数の場合はカウントしません。つまり、偶数をスキップして奇数を数え、見つかった N 番目の数を与えます。
奇数桁で構成される N 番目の数を求めるこの方法は、各数値を確認して奇数の数を数えるだけなので簡単かもしれませんが、コンピューター プログラミングの観点からは、この方法を完了するまでに多くの時間がかかります。タスク。
方法 2 - 奇数桁で構成される各数値の最後の桁は 1、3、5、7、9 であるため、奇数になります。したがって、最初に N 番目の数値が 1、3、5、7、9 であるかどうかを確認し、そうであれば答えを取得します。そうでない場合は、他の可能な数値 (11、13、15、17、19、次に 21、23、25) に移動します。 、27、29。これにより、パターン 1 * 10 {最後の可能な数値} が形成されます。
Example
Last possible numbers are 1,3,5,7,9 Next possible numbers can be found by 1 * 10 + 1 =11 1 * 10 + 3 = 13 1 * 10 + 5 = 15 1 * 10 + 7 = 17 1* 10 + 9 = 19 i.e 11,13,15,17,19
サンプル コード
まず、コードがどのようなものかを見てみましょう -
#include<bits/stdc++.h> using namespace std; int main(){ queue<int> q; int cnt = 0, ans = 0; int n; cin >> n; int a[5]={1,3,5,7,9}; for(int i = 0; i < 5;i++){ cnt++; if(cnt == n) ans = a[i]; q.push(a[i]); } if(ans) cout << ans << "\n"; else{ while(true){ int x = q.front(); q.pop(); for(int j = 0; j < 5; j++) { int temp = x * 10 + a[j]; q.push(temp); cnt++; if(cnt == n) ans = temp; } if(ans) break; } cout << ans << "\n"; } return 0; }
Output
9
(入力として 5 を指定すると、出力として 9 が得られます)
上記のコードは、奇数桁のみで構成される N 番目の数値を見つけるための C コードです。このコードを理解するために、コードを分解して各部分を理解し、完全なコードを理解しましょう。
コードの説明
ステップ 1 - ユーザーから n を取得し、必要な変数を初期化します。
int main() { queue<int> q; int cnt = 0, ans = 0; int n; cin >> n; int a[5]={1,3,5,7,9};
ここでは、キューを作成し、カウントする変数 cnt と回答を保存する変数 ans を初期化します。同時に、cin を使用してユーザーから入力を取得し、最初の可能な数値で配列を初期化します。
第 2 ステップ - N 番目の数値が最初に取り得る数値の中にあるかどうかを確認し、これらの数値をキューに保存します。
for(int i = 0; i < 5;i++){ cnt++; if(cnt == n) ans = a[i]; q.push(a[i]); } if(ans) cout << ans << "\n";
上記のコードでは、N 番目の数値が配列に格納されている最初の可能な数値で利用可能かどうかを確認し、配列内に存在する数値をキューにプッシュします。
ステップ 3 - 次に考えられる数値の中から N 番目の数値を見つけます。N 番目の数値が見つからない場合は、数値が変更されます。列。
while(true) { int x = q.front(); q.pop(); for(int j = 0; j < 5; j++) { int temp = x * 10 + a[j]; q.push(temp); cnt++; if(cnt == n) ans = temp; } if(ans) break; } cout << ans << "\n"; }
最後に、キューから各数値を取り出し、式 { x * 10 最後の奇数 } を使用して次の可能な数値を生成し、cnt の値が n に等しいかどうかを確認します。
結論
この記事では、奇数桁で構成される N 番目の奇数を求める方法という問題があり、それを解決する 2 つの方法を見つけました。最初の方法は、各数値をチェックして偶数をスキップするだけの簡単な方法ですが、計算に時間がかかります。
2 番目の方法は、キューを使用して奇数を格納し、上記の式を使用して次の可能な数値を見つけることです。このメソッドの複雑さは O(n) です。
奇数桁のみで構成される N 番目の数値を見つけるプログラムを C で作成しました。このプログラムは、C、Python、Java、またはその他のプログラミング言語など、他の言語で作成できます。この記事が問題の解決に役立つことを願っています。
以上がC++ を使用して、奇数桁で構成される N 番目の数値を見つけるプログラムを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C言語データ構造:ツリーとグラフのデータ表現は、ノードからなる階層データ構造です。各ノードには、データ要素と子ノードへのポインターが含まれています。バイナリツリーは特別なタイプの木です。各ノードには、最大2つの子ノードがあります。データは、structreenode {intdata; structreenode*left; structreenode*右;}を表します。操作は、ツリートラバーサルツリー(前向き、順序、および後期)を作成します。検索ツリー挿入ノード削除ノードグラフは、要素が頂点であるデータ構造のコレクションであり、近隣を表す右または未照明のデータを持つエッジを介して接続できます。

ファイルの操作の問題に関する真実:ファイルの開きが失敗しました:不十分な権限、間違ったパス、およびファイルが占有されます。データの書き込みが失敗しました:バッファーがいっぱいで、ファイルは書き込みできず、ディスクスペースが不十分です。その他のFAQ:遅いファイルトラバーサル、誤ったテキストファイルエンコード、およびバイナリファイルの読み取りエラー。

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

Cのカウントダウンを出力する方法は?回答:ループステートメントを使用します。手順:1。変数nを定義し、カウントダウン数を出力に保存します。 2。whileループを使用して、nが1未満になるまでnを連続的に印刷します。 3。ループ本体で、nの値を印刷します。 4。ループの端で、n x 1を減算して、次の小さな相互に出力します。

C言語マルチスレッドプログラミングガイド:スレッドの作成:pthread_create()関数を使用して、スレッドID、プロパティ、およびスレッド関数を指定します。スレッドの同期:ミューテックス、セマフォ、および条件付き変数を介したデータ競争を防ぎます。実用的なケース:マルチスレッドを使用してフィボナッチ数を計算し、複数のスレッドにタスクを割り当て、結果を同期させます。トラブルシューティング:プログラムのクラッシュ、スレッドの停止応答、パフォーマンスボトルネックなどの問題を解決します。

アルゴリズムは、問題を解決するための一連の指示であり、その実行速度とメモリの使用量はさまざまです。プログラミングでは、多くのアルゴリズムがデータ検索とソートに基づいています。この記事では、いくつかのデータ取得およびソートアルゴリズムを紹介します。線形検索では、配列[20,500,10,5,100,1,50]があることを前提としており、数50を見つける必要があります。線形検索アルゴリズムは、ターゲット値が見つかるまで、または完全な配列が見られるまで配列の各要素を1つずつチェックします。アルゴリズムのフローチャートは次のとおりです。線形検索の擬似コードは次のとおりです。各要素を確認します:ターゲット値が見つかった場合:return true return false c言語実装:#include#includeintmain(void){i

C言語処理ファイルのヒントのトラブルシューティングファイルをC言語で処理するとき、さまざまな問題に遭遇する可能性があります。以下は一般的な問題であり、対応するソリューション:問題1:ファイルコードを開くことができません:ファイル*fp = fpen( "myfile.txt"、 "r"); if(fp == null){//ファイルの開く}理由:ファイルパスエラーファイルは存在しません。 Charbuffer [100]; size_tread_bytes = fread(buffer、1、siz

C言語関数は再利用可能なコードブロックです。彼らは入力を受け取り、操作を実行し、結果を返すことができます。これにより、再利用性が改善され、複雑さが軽減されます。関数の内部メカニズムには、パラメーターの渡し、関数の実行、および戻り値が含まれます。プロセス全体には、関数インラインなどの最適化が含まれます。単一の責任、少数のパラメーター、命名仕様、エラー処理の原則に従って、優れた関数が書かれています。関数と組み合わせたポインターは、外部変数値の変更など、より強力な関数を実現できます。関数ポインターは機能をパラメーターまたはストアアドレスとして渡し、機能への動的呼び出しを実装するために使用されます。機能機能とテクニックを理解することは、効率的で保守可能で、理解しやすいCプログラムを書くための鍵です。
