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

C++では完全な正方形と完全な立方体の両方であるNまでの数を数えます


数Nが与えられます。目標は、完全な正方形と完全な立方体であるNまでの数を数えることです。たとえば、1、64は、完全な正方形と完全な立方体の両方です。

sqrt()を使用して平方根を計算し、cbrt()を使用して数値の立方根を計算します。

例を挙げて理解しましょう。

入力 − n =100

出力 −完全な平方と立方体である数の数− 2

説明 − 1と64は、完全な正方形と立方体の両方である1から100までの数字のみです。

入力 − n =5000

出力 −完全な平方と立方体である数の数− 3

説明 − 1、64、および4096は、完全な平方と立方体の両方である1から5000までの数値のみです。

以下のプログラムで使用されているアプローチは次のとおりです

  • 整数Nを取ります。

  • 関数getCount(int n)はNを取り、完全な平方と完全な立方の両方であるNまでの数の数を返します。

  • 初期カウントを0とします。

  • i=1からi=Nまで、floor(sqrt(i))==ceil(sqrt(i))の場合、iは完全な正方形です。

  • ここで、floor(cbrt(i))==ceil(cbrt(i))であるかどうかを確認します。真の場合、iも完全な立方体です。インクリメントカウント。

  • 結果としてループリターンカウントの終了時。

#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int getCount(int n){
   int count=0;
   for(int i=1;i<=n;i++){
      if(floor(sqrt(i))==ceil(sqrt(i))){
         if(floor(cbrt(i))==ceil(cbrt(i))){
            count++;
            //cout<<i<<" ";
         }
      }
   }
   return count;
}
int main(){
   int N=100;
   cout<<endl<<"Numbers upto N that are perfect squares and perfect cubes:"<<getCount(N);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Numbers upto N that are perfect squares and perfect cubes:2

  1. C ++では、その中の数字とqの積が等しくないような範囲の数値を数えます

    範囲変数として開始と終了の2つの数値が与えられ、入力として整数qが与えられます。目標は、数値とそのqの積に共通の数字がないような範囲内の数値を見つけることです。 数値が5でqが3の場合、積は15になります。5と15の両方に共通の数字5があります。 数値が2でqが5の場合、積は10になります。2と10の両方に共通の数字はありません。 例を挙げて理解しましょう。 例 入力- 開始=5、終了=10、q =2 出力- その中の数字とqを含むその積が等しくないような範囲内の数の数は次のとおりです:5 説明- 番号は次のようになります: 5(5 * 2 =10) 6(6 * 2 =

  2. C++で重みが完全な正方形であるノードを数えます

    ノードの重みを持つ二分木が与えられます。目標は、数が完全な平方になるような重みを持つノードの数を見つけることです。重みが36の場合は62であるため、このノードがカウントされます。 例 入力 値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes whose weight is a perfect square are: 4 説明 ツリーノードと各ノードに関連付けられた重みが与えられます。次に、ノードの桁が完全な平方であるかどうかを確認します。 ノード 重量 パーフェクトスクエア はい/いいえ 2 121 11 * 11 はい