# Largest right circular cylinder within a frustum

Given a frustum of height , top-radius & base-radius . The task is to find the volume of biggest right circular cylinder that can be inscribed within it.**Examples:**

Input: r = 5, R = 10, h = 4Output: 314Input: r = 7, R = 11, h = 6Output: 923.16

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.

**Approach**:

Let:

- The height of the cylinder =
**h1** - Radius of the cylinder =
**r1**

From the figure it is clear that:

- Height of the cylinder = Height of frustum
- Radius of the cylinder = Rop-radius of the frustum

So,

h1 = h r1 = r

Below is the implementation of the above approach:

## C++

`// C++ Program to find the biggest right circular cylinder` `// that can be fit within a frustum` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the biggest right circular cylinder` `float` `cyl(` `float` `r, ` `float` `R, ` `float` `h)` `{` ` ` `// radii and height cannot be negative` ` ` `if` `(h < 0 && r < 0 && R < 0)` ` ` `return` `-1;` ` ` `// radius of right circular cylinder` ` ` `float` `r1 = r;` ` ` `// height of right circular cylinder` ` ` `float` `h1 = h;` ` ` `// volume of right circular cylinder` ` ` `float` `V = 3.14 * ` `pow` `(r1, 2) * h1;` ` ` `return` `V;` `}` `// Driver code` `int` `main()` `{` ` ` `float` `r = 7, R = 11, h = 6;` ` ` `cout << cyl(r, R, h) << endl;` ` ` `return` `0;` `}` |

## Java

`// Java Program to find the biggest right circular cylinder` `// that can be fit within a frustum` `import` `java.io.*;` `class` `GFG {` `// Function to find the biggest right circular cylinder` ` ` `static` `float` `cyl(` `float` `r, ` `float` `R, ` `float` `h)` `{` ` ` `// radii and height cannot be negative` ` ` `if` `(h < ` `0` `&& r < ` `0` `&& R < ` `0` `)` ` ` `return` `-` `1` `;` ` ` `// radius of right circular cylinder` ` ` `float` `r1 = r;` ` ` `// height of right circular cylinder` ` ` `float` `h1 = h;` ` ` `// volume of right circular cylinder` ` ` `float` `V = (` `float` `)(` `3.14` `* Math.pow(r1, ` `2` `) * h1);` ` ` `return` `V;` `}` `// Driver code` ` ` `public` `static` `void` `main (String[] args) {` ` ` `float` `r = ` `7` `, R = ` `11` `, h = ` `6` `;` ` ` `System.out.print( cyl(r, R, h));` ` ` `}` `}` `// This code is contributed by anuj_67..` |

## Python3

`# Python3 Program to find the biggest right circular cylinder` `# that can be fit within a frustum` `# Function to find the biggest right circular cylinder` `def` `cyl(r, R, h) :` ` ` `# radii and height cannot be negative` ` ` `if` `(h < ` `0` `and` `r < ` `0` `and` `R < ` `0` `) :` ` ` `return` `-` `1` ` ` `# radius of right circular cylinder` ` ` `r1 ` `=` `r` ` ` `# height of right circular cylinder` ` ` `h1 ` `=` `h` ` ` `# volume of right circular cylinder` ` ` `V ` `=` `3.14` `*` `pow` `(r1, ` `2` `) ` `*` `h1` ` ` `return` `round` `(V,` `2` `)` `# Driver code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `r, R, h ` `=` `7` `, ` `11` `, ` `6` ` ` `print` `(cyl(r, R, h))` `# This code is contributed by Ryuga` |

## C#

`// C# Program to find the biggest right circular cylinder` `// that can be fit within a frustum` `using` `System;` `class` `GFG {` `// Function to find the biggest right circular cylinder` `static` `float` `cyl(` `float` `r, ` `float` `R, ` `float` `h)` `{` ` ` `// radii and height cannot be negative` ` ` `if` `(h < 0 && r < 0 && R < 0)` ` ` `return` `-1;` ` ` `// radius of right circular cylinder` ` ` `float` `r1 = r;` ` ` `// height of right circular cylinder` ` ` `float` `h1 = h;` ` ` `// volume of right circular cylinder` ` ` `float` `V = (` `float` `)(3.14 * Math.Pow(r1, 2) * h1);` ` ` `return` `V;` `}` `// Driver code` ` ` `public` `static` `void` `Main () {` ` ` `float` `r = 7, R = 11, h = 6;` ` ` `Console.WriteLine( cyl(r, R, h));` ` ` `}` `}` `// This code is contributed by anuj_67..` |

## PHP

`<?php` `// PHP Program to find the biggest` `// right circular cylinder that can` `// be fit within a frustum` `// Function to find the biggest` `// right circular cylinder` `function` `cyl(` `$r` `, ` `$R` `, ` `$h` `)` `{` ` ` `// radii and height cannot be negative` ` ` `if` `(` `$h` `< 0 && ` `$r` `< 0 && ` `$R` `< 0)` ` ` `return` `-1;` ` ` `// radius of right circular cylinder` ` ` `$r1` `= ` `$r` `;` ` ` ` ` `// height of right circular cylinder` ` ` `$h1` `= ` `$h` `;` ` ` ` ` `// volume of right circular cylinder` ` ` `$V` `= (3.14 * pow(` `$r1` `, 2) * ` `$h1` `);` ` ` `return` `$V` `;` `}` `// Driver code` `$r` `= 7; ` `$R` `= 11; ` `$h` `= 6;` `echo` `cyl(` `$r` `, ` `$R` `, ` `$h` `);` ` ` `// This code is contributed` `// by Mukul Singh.` |

## Javascript

`<script>` `// javascript Program to find the biggest right circular cylinder` `// that can be fit within a frustum` `// Function to find the biggest right circular cylinder` ` ` `function` `cyl(r , R , h)` `{` ` ` `// radii and height cannot be negative` ` ` `if` `(h < 0 && r < 0 && R < 0)` ` ` `return` `-1;` ` ` `// radius of right circular cylinder` ` ` `var` `r1 = r;` ` ` ` ` `// height of right circular cylinder` ` ` `var` `h1 = h;` ` ` ` ` `// volume of right circular cylinder` ` ` `var` `V = (3.14 * Math.pow(r1, 2) * h1);` ` ` `return` `V;` `}` `// Driver code` `var` `r = 7, R = 11, h = 6;` `document.write( cyl(r, R, h).toFixed(5));` `// This code is contributed by Princi Singh` `</script>` |

**Output:**

923.16