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

C++で指定された2つの数値の累乗の合計であるすべての整数を出力します


この問題では、2つの数値aとbと整数の境界が与えられ、aとbの2乗の合計である結合よりも小さいすべての値を出力する必要があります。 。

Bound >= ai + bj

問題を理解するために例を見てみましょう-

Input: a=2, b=3, bound=8
Output: 2 3 4 5 7

この問題を解決するために、0から2つの変数iとjを使用するネストされたループを使用します。外側のループの終了条件は xi =boundになります。 内側のループには終了条件がありますxi+yj>バインド 。内部ループの反復ごとに、xi + yiの値を、そのようなすべての値を含むソートされたリストに格納します。そして最後に、リストのすべての値を出力します。

ソリューションの実装を示すプログラム-

#include <bits/stdc++.h>
using namespace std;
void powerSum(int x, int y, int bound) {
   set<int> sumOfPowers;
   vector<int> powY;
   int i;
   powY.push_back(1);
   for (i = y; i < bound; i = i * y)
      powY.push_back(i);
   i = 0;
   while (true) {
      int powX = pow(x, i);
      if (powX >= bound)
         break;
      for (auto j = powY.begin(); j != powY.end(); ++j) {
         int num = powX + *j;
         if (num <= bound)
            sumOfPowers.insert(num);
         else
            break;
      }
      i++;
   }
   set<int>::iterator itr;
   for (itr = sumOfPowers.begin(); itr != sumOfPowers.end(); itr++) {
      cout<<*itr <<" ";
   }
}
int main() {
   int x = 2, y = 3, bound = 25;
   cout<<"Sum of powers of "<<x<<" and "<<y<<" less than "<<bound<<" are :\n";
   powerSum(x, y, bound);
   return 0;
}
出力
Sum of powers of 2 and 3 less than 25 are −
2 3 4 5 7 9 10 11 13 17 19 25

  1. C++でリーフノードから距離kにあるすべてのノードを出力します

    この問題では、二分木と数Kが与えられます。葉のノードからkの距離にある木のすべてのノードを印刷する必要があります。 二分木 は、各ノードに最大2つのノード(1/2 /なし)がある特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 この問題では、リーフノードからの距離はリーフノードよりも高いレベルのノードです。レベル4のリーフノードから距離2のノードがレベル2になるとします。 問題を理解するために例を見てみましょう K =2 出力 − 6 9. この問題を解決するために、ツリーをトラバースします。すべては、リーフノードに到達するレベルごとにすべて

  2. 2つの数値を追加するC++プログラム

    加算は基本的な算術演算です。 2つの数値を加算するプログラムは、2つの数値の加算を実行し、それらの合計を画面に出力します。 2つの数字の加算を示すプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int num1=15 ,num2=10, sum;    sum = num1 + num2;    cout<<"Sum of "<<num1<<" and &q