C++

 Computer >> コンピューター >  >> プログラミング >> C++
  1. C++で1段・2段・3段のステップを使ってn番目の階段に到達する方法の数を数える

    階段の総段数 n が与えられ、人は一度に1段、2段、または3段を飛び越えて次の階に進むことができるとします。このとき、そのような移動によって次の階に到達する方法が何通りあるかを求めるのが目的です。この問題は再帰的な手法で解くことができます。i 番目の段に到達するためには、(i−1) 番目の段から1段跳ぶか、(i−2) 番目の段から2段跳ぶか、(i−3) 番目の段から3段跳ぶかのいずれかしかない、という点に着目します。具体例で確認してみましょう。入力例と出力例例1入力N=3 段出力1段・2段・3段のステップを使ってn番目の階段に到達する方法の数:4解説合計3段あります スタートから3段跳ぶ:3

  2. C++で繰り返し数字を含む数値の読み上げパターン数を求める方法

    本記事では、同じ数字が連続して現れる数値が文字列として与えられたとき、その読み上げ方(綴り方)が何通りあるかを求める方法を解説します。例えば「112233」は「ダブルワン・ダブルツー・ダブルスリー(double one, double two, double three)」とも「ワン・ワン・ツー・ツー・スリー・スリー(one one two two three three)」とも読めます。このように、重複した数字があると読み方が複数存在します。解法のポイントは、連続する同じ数字のかたまりに注目することです。例えば「13」の場合、読み方は「ワン・スリー」の1通りだけですが、「113」になると「ダ

  3. C++で2つの配列から素数ペアの合計として得られる一意な値の個数を求める方法

    素数と非素数を含む2つの配列が与えられます。この記事の目的は、各配列から素数を取り出してペアを作り、その合計として得られる一意な値の個数を求めることです。アプローチとしては、両方の配列からそれぞれ素数を選んでペアを作り、その合計を set<int> 型のコンテナに格納していきます。set は重複する値を自動的に排除してくれるため、最終的な set のサイズが「一意な素数の合計の個数」と一致します。具体例で確認してみましょう。入力Arr1[] = { 1,2,3 } Arr2[] = { 2,3,4}出力Distinct Sums of primes :3説明素数ペア:(2,2),

  4. 【C++】指定された文字列をページに書き込むために必要な行数を求める方法

    アルファベットのみで構成された文字列 Str と、英字 a〜z それぞれの幅を格納した配列 widths[] が与えられます。幅が 10 文字分のページにこの文字列を書き込むとき、必要な行数と最終行の使用幅(残りの余白)を求めるのがこの問題の目的です。 入力例と出力例 例 1 入力 Str = ababababab widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1} 出力 行数: 2 最終行の使用幅: 6 解説 1 行目には「ababab」(2+1+2+1+2+1 =

  5. C++で指定範囲内の未セットビット(0ビット)の個数を数える方法

    整数値 num と、left(左端)・right(右端)の2つの値で表される範囲が与えられたとします。まず対象となる数値を2進数に変換し、続いて左端の桁から右端の桁までループ処理を行い、その範囲内に含まれる「未セットビット(unset bit)」の個数を求めるのが本記事の課題です。 2進数における未セットビットとは、値が「0」になっているビットのことです。整数値を2進数へ変換すると、必ず0と1の組み合わせで表現されます。コンピュータの用語としては、この「0」にあたるビットが未セットビットと呼ばれます。 入出力例 入力: int number = 50, left = 2, right = 5

  6. C++で整数の未設定ビット(0のビット)を数える方法

    整数値(例:num)が与えられたとき、まずその数値を2進数に変換し、次に含まれる未設定ビットの総数を求めるのが本記事の目的です。2進数における未設定ビットとは「0」で表されるビットのことです。整数を2進数に変換すると、必ず0と1の組み合わせになります。コンピュータの用語では、この「0」を未設定ビット(unset bit)、「1」を設定ビット(set bit)と呼びます。入出力例入力: int number = 50出力: 数値に含まれる未設定ビットの総数は 5説明: 50の2進表現は 110010 です。これを8桁の2進数として表すと、先頭に2つの0が追加されて 00110010 となります。

  7. C++で2から10までのすべての数で割り切れる数を数える方法

    問題概要ある整数 num が与えられたとき、1からnumまでの範囲に含まれる数のうち、2、3、4、5、6、7、8、9、10のすべてで割り切れる数がいくつあるかを求めるのが課題です。入力: int num = 10000出力: 2から10までのすべての数で割り切れる数の個数: 3説明: 1から10000までの範囲には、2から10までのすべての数で割り切れる数が3つ存在します。具体的には 2520、5040、7560 の3つです。入力: int num = 20000出力: 2から10までのすべての数で割り切れる数の個数: 7説明: 1から20000までの範囲では、該当する数は7つになります。具体

  8. C++で配列内に積が存在するペアの個数を数える方法

    問題概要整数型の要素からなる配列が与えられたとき、配列から2つの要素を選んでペアを作り、その積を計算します。そして、その積が元の配列の中にも存在するかどうかを調べ、条件を満たすペアの個数を求めるのがこの記事の目的です。入力 − int arr[] = {6, 2, 3, 1, 5, 10}出力 − 積が同じ配列内に存在するペアの個数:7説明 − 与えられた配列から作れるペアは次の15通りです。(6, 2), (6, 3), (6, 1), (6, 5), (6, 10), (2, 3), (2, 1), (2, 5), (2, 10), (3, 1), (3, 5), (3, 10), (1,

  9. C++で2つの配列から合計が偶数になるペアを数える方法

    この記事では、整数型の要素を持つ2つの配列 arr_1[] と arr_2[] が与えられたとき、arr_1[] から1つの要素、arr_2[] からもう1つの要素を選んでペアを作り、そのペアの合計を計算して、合計が偶数になるペアの数を数える方法を解説します。入力例と出力例入力int arr_1[] = {2, 3, 7, 1, 4} int arr_2[] = {2, 4, 1, 3}出力Count Pairs from two arrays with even sum are: 10説明両方の配列から作成できるすべてのペアとその合計は次のとおりです。(2, 2) = 4(有効)、(2, 4

  10. C++で合計が4で割り切れる配列のペアを数える方法

    整数型の要素を含む配列が与えられます。この配列からペアを作成し、各ペアの要素の合計を計算して、その合計が4で割り切れるかどうかを判定するのが課題です。入力 − int arr[] = {4, 1, 2, 0, 2}出力 − 合計が4で割り切れるペアの数 − 2説明 − 与えられた配列から作成できるペアとその合計は次の通りです。(4, 1) = 5(割り切れない)、(4, 2) = 6(割り切れない)、(4, 0) = 4(割り切れる)、(4, 2) = 6(割り切れない)、(1, 2) = 3(割り切れない)、(1, 0) = 1(割り切れない)、(1, 2) = 3(割り切れない)、(2,

  11. C++で合計がKで割り切れる配列内のペアを数える方法

    整数型の要素からなる配列が与えられます。この課題では、配列から作成できるすべてのペアを列挙し、それぞれのペアの要素の合計を計算して、その合計が k で割り切れるかどうかを判定します。最終的に、条件を満たすペアの総数を求めます。入力例と出力例例1入力 − int arr[] = {4, 1, 2, 0, 2}、int k = 2出力 − 合計がkで割り切れるペアの数:6説明 − 与えられた配列から作成できるペアは次のとおりです。(4, 1) = 5(2で割り切れない)、(4, 2) = 6(割り切れる)、(4, 0) = 4(割り切れる)、(4, 2) = 6(割り切れる)、(1, 2) = 3

  12. C++で配列内の「セットビット数が等しいペア」をカウントする方法

    問題概要 整数型の要素からなる配列が与えられます。この配列から作れるすべてのペアについて、それぞれの要素が持つセットビット(2進表現で「1」となるビット)の数を計算し、両方の要素のセットビット数が等しいペアがいくつあるかを求めるのが本記事の課題です。 整数値を2進数に変換すると、0と1の組み合わせで表現されます。このうち値が「1」になっているビットのことを、コンピュータの用語ではセットビットと呼びます。たとえば、6は2進数で「110」と表されるため、セットビットは2個です。 入出力例 例1 入力: int arr[] = {6, 5, 1, 3, 7} 出力: Count of pairs

  13. C++で合計がx未満となるソート済み配列内のペアを数える方法

    問題概要整数型の要素からなるソート済み配列と整数変数xが与えられます。配列から2つの要素を選んでペアを作り、その合計がx未満になるペアが全部でいくつ存在するかを求めるのが課題です。例1入力: int arr[] = {2, 7, 1, 0, 8}, int x = 8出力: 合計がx未満となるペアの数: 4説明: 配列から作成できるすべてのペアとその合計は以下の通りです。(2, 7) = 9(xより大きい)、(2, 1) = 3(x未満)、(2, 0) = 2(x未満)、(2, 8) = 10(xより大きい)(7, 1) = 8(xに等しい)、(7, 0) = 7(x未満)、(7, 8) =

  14. C++で積がk未満となるソート済み配列のペア数を効率よく数える方法

    問題の概要整数型の要素からなるソート済み配列と整数 k が与えられたとき、配列から作れるすべてのペアについて積を計算し、その積が k 未満となるペアの個数を求めるのが課題です。入力例int arr[] = {2, 7, 1, 0, 8}, int k = 10出力例Count of pairs in a sorted array whose product is less than k are: 7解説作成できるペアは次のとおりです。(2, 7) = 14(k以上)、(2, 1) = 2(k未満)、(2, 0) = 0(k未満)、(2, 8) = 16(k以上)、(7, 1) = 7(k未満)

  15. 【C++】合計が指定した値に等しい2つの連結リストのペアを数える方法

    2つの連結リストが与えられ、それぞれのリストに含まれる整数要素を組み合わせて、合計が指定した値(k)と等しくなるペアが何組作れるかを数えるのが本記事の課題です。連結リスト(linked list)とは、複数のデータ構造がリンク(ポインタ)で順々に接続されたデータ構造の列のことです。 入出力の確認 例1 vector<int> v_1 = {5, 7, 8, 10, 11}; vector<int> v_2 = {6, 4, 3, 2, 0}; int k = 11; 出力: 合計がkに等しいペアの個数: 4 解説: 2つのリストから作れる全25通りの組み合わせのうち、合

  16. C++で積が指定した値に等しくなる2つの連結リストのペアを数える方法

    2つの連結リストが与えられ、それぞれのリストが持つ整数要素を組み合わせて、その積が指定された値(k)と等しくなるペアがいくつ存在するかを求めるのが課題です。連結リスト(リンクリスト)とは、リンク(ポインタ)によって順々に接続されたデータ構造の列のことを指します。 入力例と出力例 例1 入力: vector v_1 = {5, 7, 8, 10, 11} vector v_2 = {6, 4, 3, 2, 0} int k = 20 出力: 積が指定された値kに等しい2つの連結リストのペアの数: 2 説明: 2つの連結リストから作成できるペアは全部で 5 × 5 = 25通りあります。そのうち積

  17. 【C++】NxM行列の各行に存在する配列要素の個数を数える方法

    整数型の要素からなる配列と、行数・列数が指定された行列(2次元配列)が与えられ、配列の要素が行列の各行にいくつ存在するかを数えるのが本記事の課題です。 入力例と出力例 入力 int arr = { 2, 4, 6} と int matrix[row][col] = { { 2, 4, 6 }, {3, 4, 6}, {6, 2, 1}} 出力 第1行に存在する配列要素の数: 3 第2行に存在する配列要素の数: 2 第3行に存在する配列要素の数: 2 説明 配列には 2、4、6 の3つの要素が含まれています。配列の各要素と行列の要素を照合し、各行における出現数を数えます。1行目には 2、4、6

  18. C++で指定された要素数から作成できる(異なる次数の)行列の数を求める方法

    問題概要本記事では、要素の総数が与えられたときに、そのデータから形成できる異なる次数(サイズ)の行列の総数を求める方法を解説します。行列の次数は m×n という形式で表され、m は行数、n は列数を表します。例 1入力: int numbers = 6出力: 与えられた要素数から形成できる異なる次数の行列の数: 4解説: 行列に含められる要素の総数として 6 が与えられています。6 個の要素から作成できる行列の次数は (1, 6)、(2, 3)、(3, 2)、(6, 1) の 4 通りです。例 2入力: int numbers = 40出力: 与えられた要素数から形成できる異なる次数の行列の数

  19. C++で[0, n]の範囲にセットビットがちょうど1つだけある数の個数を求める方法

    問題概要ある整数が与えられたとき、0からその数までの範囲(0〜num)に含まれる「セットビットがちょうど1つだけ」の数の個数を求めるのが本記事のテーマです。セットビットとは、2進数表現において「1」となっているビットのことです。整数値を2進数に変換すると、必ず0と1の組み合わせで表されます。コンピュータの分野では、この「1」のことをセットビットと呼びます。入力例・出力例入力: int num = 15出力: [0, 15] の範囲でセットビットが1つだけある数の個数は 4解説: 与えられた数は15なので、対象となる範囲は0〜15です。各数値を4桁の2進数で表すと次のようになります。0 → 0

  20. C++で英語アルファベットと同じ距離にある文字ペアの数を数える方法

    文字列が与えられ、その中から「英語アルファベット上での文字同士の距離」と「文字列内での位置の距離」が一致する文字ペアの数を計算するのが本記事の課題です。例で理解しよう入力 − string str = Tutorials Point出力 − 英語アルファベットと同じ距離にある文字ペアの数: 5説明 − アルファベット上で同じ距離関係にある文字ペアは、(u, t)、(u, r)、(t, r)、(i, o)、(s, n) の5つです。したがって合計は5ペアとなります。入力 − string str = Learning is the best habit出力 − 英語アルファベットと同じ距離にある

Total 5990 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:222/300  20-コンピューター/Page Goto:1 216 217 218 219 220 221 222 223 224 225 226 227 228