# 12+ CPP Cube Root Finder Program Examples

This post contains a total of 12+ Hand-Picked C++ Cube Root Finder Program Examples with Source Code. All these Cube root programs are made using C++ Programming language.

You can use the source code of these examples with credits to the original owner.

## C++ Cube Root Finder Programs

### 1. By Szaky

Made by Szaky. A simple C++ Program to find the cube root of a given number. Source

```Input: 10
Output: 2.15444```
``````#include <iostream>
using namespace std;

int main()
{
double number;
cin >> number;
cout << "Input: " << number << endl;
cout << "Output: ";
// if number is negative
if (number < 0) {
number*=-1;     //change
cout << "-";
}
// trivial roots
if (number == 1 || number == 0)
{
cout << number;
return 0;
}

// interval halving
// initial upper limit
double up = number;
if (number < 1) up = 1;
// initial lower limit
double low = 0;
// mid point (root)
double r = (up + low) / 2;
// stopping condition (abs(error))<0.0001
while (number - (r*r*r) > 0.0001 || number - (r*r*r) < -0.0001)
{
// movement of the lower or upper limit
if ((number - (low*low*low)) * (number - (r*r*r)) < 0 ) up = r;
else low = r;
// new mid point (root)
r = (up + low) / 2;
}

cout << r;

return 0;
}

``````

### 2. By Disvolvigo

Made by Disvolvigo. C++ Cube root program without using any Libraries. Source

```12
4.66667
3.29478
2.565
2.31797
2.28978
2.28943
2.28943
2.28943
2.28943 <- Result!!```
``````#include <iostream>
using namespace std;

double cubeRoot(double n);

int main()
{
double n;
cin >> n;
cout << cubeRoot(n) << " <- Result!!" << endl;
return 0;
}

double cubeRoot(double n)
{
//with Newton's mothod.
double x = 1, e = 1;
while((e < 0 ? -e : e) > 10e-14)
{
e = (x*x*x - n) / (3*x*x);
x = x - e;
cout << x << endl;
}
return x;
}
``````

### 3. By Ankith R V

Made by Ankith R V. Source

```Input - 5
Output - 1.7099```
``````#include <iostream>

using namespace std;
int main() {
int n, m, D=0  ;
double  d =0;
cin>>n;

for(float i=0;i<n;)
{
m=(i*i)*i;
if(m == n )
{
D=i*100000;
d=D%10;
d/=100000;
cout<<"Input - "<<n<<endl;
cout<<"Output - "<<i-d;

break;
}

i=i+0.00001;
}

return 0;
}``````

### 4. By NC

Made by NC. Simple C++ program to Find Cube Root ( Whole Range ). Source

```Enter the number: 15
Cube Root of 15 is 2.46621```
``````#include <iostream>
using namespace std;

int main() {
cout << "Enter the number: ";
float n;
cin >> n;
cout << n << endl;

float x0 = n/2.0, x, d; // random initial guess

int count = 1;

do{
x = (1.0/3.0)*((2.0*x0) + (n/(x0*x0)));
//cout << "Iteration No.: " << count << " Possible Root: " << x << endl ;
++ count ;
d = x0;
x0 = x;
}while ((d > x && (d-x) > 0.0001) || (d < x && (x-d) > 0.0001));

/*
f(x) = x*x*x - n
f'(x) = 3*x*x
x(n+1) = x(n) - (f(x(n))/f'(x(n)))
= (1/3)*(2*x + (n/x^2))
|x(n+1) - x(n)| <= 0.0001
*/

cout << "Cube Root of " << n << " is " << x;

return 0;
}``````

### 5. By Naveen Maurya

Made by Naveen Maurya. Cube root and square root finder program without using libraries. Source

```Enter a positive number to find out its cube root: 10
The square root of 10 is 3.16228
The cube root of 10 is 2.15443```
``````#include <iostream>
using namespace std;

double precision = 0.0000001;
double increment = 0.0000001;

double squareRoot(double num) {
for(double i = 0; i < num; i+=increment) {
if(num - i*i < precision) {
return i;
}
}
}

double cubeRoot(double num) {
for(double i = 0; i < num; i+=increment) {
if(num - i*i*i < precision) {
return i;
}
}
}

int main() {
double num = 10;//Default value
cout << "Enter a positive number to find out its cube root: ";
cin >> num;
cout << "\nThe square root of " << num << " is " << squareRoot(num);
cout << "\nThe cube root of " << num << " is " << cubeRoot(num);
return 0;
}``````

### 6. By Bilal Ahmed

```Enter number : square root of 6 is 2.44949

cube root of 6 is 1.81712```
``````#include <iostream>
#include <cmath>

using namespace std;

int main()
{

//variable declaration
int number;

//take input for number from user
cout << "Enter number : ";
cin >> number;

//use of sqrt function to find square root
cout << "square root of " << number << " is " << sqrt(number);

cout << "\n\n";

//use of cbrt function to find cube root
cout << "cube root of " << number << " is " << cbrt(number);

cout << "\n";

return 0;
}``````

### 7. By Mohammad Amir Aqeel

Made by Mohammad Amir Aqeel. Program without library function to find cube root. Source

```Enter A Number To Find Its Cube : 20
Cube of 20 is : 2.7144```
``````#include <iostream>

using namespace std;

int main()
{
double a,b,c,d,e,i,j=1,res=0,f,k,t=10,flag;
cout<<"Enter A Number To Find Its Cube : ";
cin>>a;
if(a<0){
a+=(-2*a);
flag=1;
}
for(i=0;i<=a;i++){
if((i*i*i)==a){
b=i;
j=5;
}
if((i*i*i)>a){
b=i-1;
break;
}
}
c=a-(b*b*b);
c*=1000;
res+=b;
while(j!=5){
for(k=1;k<c;k++){
e=(300*b*b)+(30*b*k)+(k*k);
d=e*k;
if(d>c){
k=k-1;
break;
}
}
e=(300*b*b)+(30*b*k)+(k*k);
d=e*k;
f=k/t;
res+=f;
c=(c-d)*1000;
b=res*t;
t*=10;
j++;
}
if(flag==1){
res*=(-1);
}
cout<<"Cube of "<<a<<" is : "<<res;
}
``````

### 8. By Logan Potts

```2
1.22743```
``````#include <vector>
#include <iostream>
using namespace std;

int main(){
int c;
cin >> c;
vector <int> low_est;
for(int i=0;i*i*i<c;i++){
low_est.push_back(i);
}
int a;
a = low_est.back();
low_est.clear();
double b = a+1;
double x = (a+b)/2;
double y = x;
for(int i=1;i<1000000;i++){
if(x*x*x>c){
b=x;
x = (x+a)/2;
y=x;
} else {
a = x;
x = (x+b)/2;
y=x;
}
}
cout << x;
return 0;
}``````

### 9. By Paolo De Nictolis

Made by Paolo De Nictolis. Source

```Enter a number to calculate its cube root: 5
Cube root of 5 is 1.70998```
``````
#include <iostream>
#include <string>
using namespace std;

int main() {
string strNum;
double num;
double croot = 0.0;
cout << "Enter a number to calculate its cube root:" << endl;
cin >> strNum;
num = stod(strNum);
while(croot * croot * croot < num){
croot++;
}
croot -= 0.5;
while(abs((croot * croot * croot) - num)>0.00001){
croot = (2*croot+num/(croot*croot))/3; // Newton-Raphson formula
}
cout << "Cube root of " << strNum << " is " << croot;
return 0;
}``````

```Your input : 10 .

Approximations :
1.  4
2.  2.875
3.  2.31994
4.  2.16596
5.  2.1545
6.  2.15443```
``````#include <iostream>
using namespace std;

int main() {

//Taking Input
string number;
double y,num;
int d=1,dig;

cin>>number;

dig=number.length()-1;
num=stod(number);

//To stop program if input is 0 or 1
if(num==0||num==1||num==-1)
{
cout<<"=>Therefore "<<num<<" is the cube root of "<<num<<" ."; return 0;
}

//To help in guessing the approx value
for(int j=1;j<=dig;j++)
{        d*=10;    }
y=num/d;
cout<<"Approximations :\n";

/*  By Newton Raphson Method;

i.e f(x) = x*x*x - num
f'(x) = 3*x*x

x a+1 = x a - (f(x) / f'(x))
*/
for(int i=1;;i++)
{
y=y-(y*y*y-num)/(3*y*y);
cout<<i<<".  "<<y<<endl  ;
if(y*y*y<=num)
{
//Printing results
cout<<"\n=>Therefore; "<<y<<" is the cube root of "<<num<<" .";
return 0;
}
}
return 0;
}
``````

### 11. By K Martin

Made by K Martin. Cube root finder program using loops. Source

```12
2.2895```
``````#include <iostream>
using namespace std;
float a;
float c=0;
int x=0;
int y=0;
int z=0;
int q=0;
int w=0;
int main() {
cin>>a;
while(x<1){
c=c+1;
if(a==c*c*c){
x=2;
cout<<c;
}
if(a<c*c*c){

c=c-1;

while(y<1){
c=c+0.1;
if(c*c*c==a){
y=2;
x=2;
cout<<c;
}

if(a<c*c*c){

c=c-0.1;

while(z<1){
c=c+0.01;
if(a==c*c*c){
x=2;
y=2;
z=2;
cout<<c;
}
if(a<c*c*c){

c=c-0.01;

while(q<1){
c=c+0.001;
if(a==c*c*c){
x=2;
y=2;
z=2;
q=2;
cout<<c;
}
if(a<c*c*c){
c=c-0.001;
while(w<1){
c=c+0.0001;
if(a==c*c*c){
x=2;
y=2;
z=2;
q=2;
w=2;

cout<<c;

}
if(c*c*c>a){
x=2;
y=2;
z=2;
q=2;
w=2;

cout<<c;
}
}
}

}
}
}

}
}
}
}

return 0;

}
``````

### 12. By Navneet Sharma

```Enter any number
Cube of 5 is: 1.70998```
``````#include <iostream>
#include<cmath>
using namespace std;

int main() {
float num, ans;
cout<<"Enter any number"; cin>>num;
ans=pow(num,1.0/3.0);
//ans++;
cout<<"\n\Cube of "<<num<<" is: "<<ans;
return 0;
}``````

### 13. By Nick

Made by Nick. Input a number (can be a decimal number too) and the program will try to find it’s cube root by approaching it’s value. You can manipulate the accuracy of the output number by changing the “y” variable. The higher the value the more accurate the output will be but it will also be more likely to exceed the time limit so if it doesn’t work lower the accuracy. Excluded negative numbers and 0. Source

```15
13.824 < 15 < 15.625
14.8869 < 15 < 15.0692
14.9961 < 15 < 15.0144
14.9998 < 15 < 15.0016
14.9999 < 15 < 15.0001
The cube root of 15 is approximately 2.46621.```
``````#include <iostream>
using namespace std;

int main() {
float num, i, x, y;
bool isTrue = false;
cin >> num;
i = 1000;
x = i / 10;
y = 5; //This value is the accuracy
if (num <= 0) {
cout << "number must be higher than 0";
return 0;
}
while (i*i*i > num) {
i /= 10;
x /= 10;
}
while (i*i*i*100 < num) {
i *= 10;
x *= 10;
}
while (y > 0) {
while (i*i*i < num) {
i += x;
}
if (i*i*i == num) {
isTrue = true;
break;
}
i -= x;
if (i*i*i == num) {
isTrue = true;
break;
}
cout << i*i*i << " < " << num << " < " << (i+x)*(i+x)*(i+x) << "\n";
x /= 10;
y--;
}
if (isTrue == true) {
cout << "The cube root of " << num << " is " << i << ".";
}
if (isTrue == false) {
cout << "The cube root of " << num << " is approximately " << i << ".";
}
return 0;
}``````