Horje
Percentage change in Hemisphere volume if radius is changed

Given that the radius of a hemisphere is changed by a fixed percentage so, the target is to calculate the percentage changed in the volume of the hemisphere.
 

Examples: 
Input: r = 20% 
Output: 72.80%
Input: r = 70% 
Output: 391.30 % 
 


 


Approach: 
 

  • Let, the radius of the hemisphere = a
     
  • Given percentage increase = x%
     
  • Volume before increase = \frac{2}{3} * 3.14*a^3
     
  • New radius after increase = a + \frac{ax}{100}
     
  • So, new volume = \frac{2}{3}*3.14*(a^3 + (\frac{ax}{100})^3 + \frac{3a^3x}{100} + \frac{3a^3x^2}{10000})
     
  • Change in volume = \frac{2}{3}*3.14*((\frac{ax}{100})^3 + \frac{3a^3x}{100} + \frac{3a^3x^2}{10000})
     
  • Percentage increase in volume 
    = (\frac{2}{3}*3.14*((\frac{ax}{100})^3 + \frac{3a^3x}{100} + \frac{3a^3x^2}{10000})/\frac{2}{3}*3.14*a^3) * 100
    = \frac{x^3}{10000} + 3x + \frac{3x^2}{100}
     


Below is the implementation of the above approach: 
 

CPP

// C++ program to find percentage change
// in hemisphere volume wrt change in radius
 
#include <iostream>
#include <math.h>
using namespace std;
 
// Function to find the change
// in hemispheric volume
void new_vol(double x)
{
 
    if (x > 0) {
 
        cout << "% change in the "
             << "volume of the hemisphere: "
             << pow(x, 3) / 10000 + 3 * x
                    + (3 * pow(x, 2)) / 100
             << "%"
             << " increase\n";
    }
 
    else if (x < 0) {
 
        cout << "% change in the "
             << "volume of the hemisphere: "
             << pow(x, 3) / 10000 + 3 * x
                    + (3 * pow(x, 2)) / 100
             << "% decrease\n";
    }
 
    else {
        cout << "Volume remains the same.";
    }
}
 
// Driver code
int main()
{
 
    // Get the change in radius
    double x = -10.0;
 
    // Calculate the change in hemispheric volume
    new_vol(x);
 
    return 0;
}

Java

// Java program to find percentage change
// in hemisphere volume wrt change in radius
class GFG
{
 
// Function to find the change
// in hemispheric volume
static void new_vol(double x)
{
 
    if (x > 0)
    {
 
        System.out.print("% change in the "
            + "volume of the hemisphere: "
            + (Math.pow(x, 3) / 10000 + 3 * x
                    + (3 * Math.pow(x, 2)) / 100)
            + "%"
            + " increase\n");
    }
 
    else if (x < 0)
    {
 
        System.out.print("% change in the "
            + "volume of the hemisphere: "
            + (Math.pow(x, 3) / 10000 + 3 * x
                    + (3 * Math.pow(x, 2)) / 100)
            + "% decrease\n");
    }
 
    else
    {
        System.out.print("Volume remains the same.");
    }
}
 
// Driver code
public static void main(String[] args)
{
 
    // Get the change in radius
    double x = -10.0;
 
    // Calculate the change in hemispheric volume
    new_vol(x);
}
}
 
// This code is contributed by Rajput-Ji

Python

# Python3 program to find percentage change
# in hemisphere volume wrt change in radius
 
 
# Function to find the change
# in hemispheric volume
def new_vol(x):
 
    if (x > 0):
 
        print("% change in the volume of the hemisphere: ", pow(x, 3) / 10000 + 3 * x + (3 * pow(x, 2)) / 100,"% increase")
 
    elif (x < 0):
 
        print("% change in the volume of the hemisphere: ", pow(x, 3) / 10000 + 3 * x + (3 * pow(x, 2)) / 100,"% decrease")
 
    else:
        print("Volume remains the same.")
# Driver code
 
# Get the change in radius
x = -10.0
 
# Calculate the change in hemispheric volume
new_vol(x)
 
# This code is contributed by mohit kumar 29

C#

// C# program to find percentage change
// in hemisphere volume wrt change in radius
using System;
 
class GFG
{
 
    // Function to find the change
    // in hemispheric volume
    static void new_vol(double x)
    {
        if (x > 0)
        {
     
            Console.Write("% change in the "
                + "volume of the hemisphere: "
                + (Math.Pow(x, 3) / 10000 + 3 * x
                        + (3 * Math.Pow(x, 2)) / 100)
                + "%"
                + " increase\n");
        }
     
        else if (x < 0)
        {
     
            Console.Write("% change in the "
                + "volume of the hemisphere: "
                + (Math.Pow(x, 3) / 10000 + 3 * x
                        + (3 * Math.Pow(x, 2)) / 100)
                + "% decrease\n");
        }
     
        else
        {
            Console.Write("Volume remains the same.");
        }
    }
     
    // Driver code
    public static void Main()
    {
     
        // Get the change in radius
        double x = -10.0;
     
        // Calculate the change in hemispheric volume
        new_vol(x);
    }
}
 
// This code is contributed by AnkitRai01

Javascript

// javascript program to find percentage change
// in hemisphere volume wrt change in radius
 
    // Function to find the change
    // in hemispheric volume
    function new_vol(x)
    {
        if (x > 0)
        {
       
            document.write("% change in the "
                + "volume of the hemisphere: "
                + (Math.pow(x, 3) / 10000 + 3 * x
                        + (3 * Math.pow(x, 2)) / 100)
                + "%"
                + " increase\n");
        }
       
        else if (x < 0)
        {
       
            document.write("% change in the "
                + "volume of the hemisphere: "
                + (Math.pow(x, 3) / 10000 + 3 * x
                        + (3 * Math.pow(x, 2)) / 100)
                + "% decrease\n");
        }
       
        else
        {
            document.write("Volume remains the same.");
        }
    }
       
    // Driver code
     
        // Get the change in radius
        var x = -10.0;
       
        // Calculate the change in hemispheric volume
        new_vol(x);
 
// This code is contributed by bunnyram19. 

Output: 
% change in the volume of the hemisphere: -27.1% decrease

 

Time Complexity: O(1)

Auxiliary Space: O(1) as using only constant variables




Reffered: https://www.geeksforgeeks.org


Mathematical

Related
Subarray permutation that satisfies the given condition Subarray permutation that satisfies the given condition
Sum of all N digit palindrome numbers Sum of all N digit palindrome numbers
Sum of all the numbers present at given level in Modified Pascal’s triangle Sum of all the numbers present at given level in Modified Pascal’s triangle
Multiply Large Numbers using Grid Method Multiply Large Numbers using Grid Method
Find Nth even length palindromic number formed using digits X and Y Find Nth even length palindromic number formed using digits X and Y

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
8