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

N未満のすべての整数をC++で合計として表すために必要な最小数


問題の説明

整数Nがあります。これらの整数の一部またはすべてを加算することで1からNの範囲のすべての数値を取得できるように、NをK個の整数の合計として表す必要があります。タスクはK<の最小値を見つけることです。 / P>

N =8の場合、最終的な答え、つまりKは3になります

整数1、2、3、および4を取り、これらのグループの一部またはすべてを追加すると、1からNの範囲のすべての数値を取得できます

e.g.
1 = 1
2 = 2
3 = 3
4 = 4
5 = 1 + 5
6 = 4 + 2
7 = 4 + 3
8 = 1 + 3 + 4

アルゴリズム

Count number of bits from given integer

#include <bits/stdc++.h>
using namespace std;
int getMinNumbers(int n) {
   int cnt = 0;
   while (n) {
      ++cnt;
      n = n >> 1;
   }
   return cnt;
}
int main() {
   int n = 8;
   cout << "Minimum required numbers = " <<getMinNumbers(n) << endl;
   return 0;
}

上記のプログラムをコンパイルして実行する場合。次の出力を生成します

出力

Minimum required numbers = 4

  1. C++を使用してNを合計として表現するために必要なパリンドロームの最小数。

    問題の説明 数Nが与えられた場合、Nをそれらの合計として表現するために必要な回文数の最小数を見つける必要があります N =15の場合、2つの回文、つまり8と7が必要です。 アルゴリズム 1. Generate all the palindromes up to N in a sorted fashion 2. Find the size of the smallest subset such that its sum is N 例 #include <iostream> #include <vector> #include <climits> #incl

  2. C++の最初のn個の自然数の合計の合計

    この問題では、最初のn個の自然数の合計を見つけるために、1からnまでのすべての数の合計を見つけ、それらを合計して合計を求めます。 例を見て、概念について学びましょう。 Input : 4 Output : 10 Explanation : Sum of first 1 natural number = 1 Sum of first 2 natural number = 1 + 2 = 3 Sum of first 3 natural number = 1 + 2 +3 = 6 Sum of first 4 natural number = 1 + 2 + 3 + 4 = 10 Sum of