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

C++で数値の立方根を見つける


ここでは、数値の立方根を取得する方法を説明します。数値が27とすると、この数値の立方根は3になります。この問題を解決するために、ライブラリ関数を使用せずに独自のロジックを定義します。二分探索アプローチを使用します。この問題を解決するには、次の手順に従う必要があります。

threshold =0.000001

のようなしきい値があるとします。
  • 左の値を0として開始し、右の値を数値として開始します

  • 中央を計算する:=(左+右)/ 2

  • (number – mid3)の絶対値がしきい値よりも小さい場合は、回答としてmidを返します

  • mid3が数値より大きい場合は、右に設定します:=mid

  • mid3が数値よりも小さい場合は、左に設定します:=mid

#include<iostream>
#include<cmath>
using namespace std;
   double cubeRoot(int num) {
   double threshold = 0.000001;
   double left = 0, right = num;
   double mid;
   while(left <= right){
      mid = (left + right)/2;
      if(abs(num - (mid*mid*mid)) < threshold)
         return mid;
      if((mid*mid*mid) > num)
         right = mid;
      if((mid*mid*mid) < num)
         left = mid;
   }
}
int main() {
   int n = 3;
   cout << "cube root of 3 is: " << cubeRoot(n);
}

出力

cube root of 3 is: 1.44225

  1. C++でマトリックス内の空洞の数を見つける

    1つの行列が与えられていると考えてください。マトリックス内の空洞の数を見つける必要があります。 1つの要素は、それを囲む他のすべての要素がその要素よりも大きい場合にキャビティとして示されます。したがって、行列が-のような場合 4 5 6 7 1 5 4 5 6 したがって、出力は1です。 周囲の要素を確認して決定を下すだけです。 例 #include<iostream> #define MAX 100 using namespace std; int numberOfCavities(int array[][MAX], i

  2. C++でDで割り切れるN桁の数値を検索します

    NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string ans = "";    if (d <