# Count Number of animals in a zoo from given number of head and legs

Given the total number of Legs and Head of Rabbits and Pigeons. The task is to calculate the number of Rabbits and Pigeons.

Examples:

```Input: Heads = 200, Legs = 540
Output: Rabbits = 70, Pigeons = 130```
```Input: Heads = 100, Legs = 300
Output: Rabbits = 50, Pigeons = 50```

Let the total no. of Heads = 200 and Legs = 540.
Let the number of Head and Legs of Rabbits = X and that of Pigeons = Y.
so,
X + Y = 200 ..equation 1 (no. of the heads of a rabbit and a pigeon = total no. of heads)
(As both of them has 1 head)
4X + 2Y = 540 …equation 2 (no. of the legs of the rabbit and a pigeon = total no. of legs)
(Rabbit have 4 legs and pigeons have 2 legs)
Now, solving equation 1 and 2 we get,
4X = 540 – 2Y
4X = 540 – 2 * (200 – X)
4X = 540 – 400 + 2X
2X = 140 => X = 70
X = 70 and Y = 130.
hence, Rabbits = 70 and Pigeons = 130

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach``#include ``using` `namespace` `std;` `// Function that calculates Rabbits``int` `countRabbits(``int` `Heads, ``int` `Legs)``{``    ``int` `count = 0;` `    ``count = (Legs)-2 * (Heads);``    ``count = count / 2;` `    ``return` `count;``}` `// Driver code``int` `main()``{``    ``int` `Heads = 100, Legs = 300;` `    ``int` `Rabbits = countRabbits(Heads, Legs);` `    ``cout << ``"Rabbits = "` `<< Rabbits << endl;``    ``cout << ``"Pigeons = "` `<< Heads - Rabbits << endl;` `    ``return` `0;``}`

## Java

 `// Java implementation of above approach``import` `java.util.*;``import` `java.lang.*;` `class` `GFG``{``// Function that calculates Rabbits``static` `int` `countRabbits(``int` `Heads,``                        ``int` `Legs)``{``    ``int` `count = ``0``;` `    ``count = (Legs) - ``2` `* (Heads);``    ``count = count / ``2``;` `    ``return` `count;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``int` `Heads = ``100``, Legs = ``300``;` `    ``int` `Rabbits = countRabbits(Heads, Legs);` `    ``System.out.println(``"Rabbits = "` `+ ``                        ``Rabbits);``    ``System.out.println(``"Pigeons = "` `+``                      ``(Heads - Rabbits));``}``}` `// This code is contributed ``// by Akanksha Rai(Abby_akku)`

## Python3

 `# Python 3 implementation of above approach` `# Function that calculates Rabbits``def` `countRabbits(Heads, Legs):``    ``count ``=` `0` `    ``count ``=` `(Legs) ``-` `2` `*` `(Heads)``    ``count ``=` `count ``/` `2` `    ``return` `count` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``Heads ``=` `100``    ``Legs ``=` `300` `    ``Rabbits ``=` `countRabbits(Heads, Legs)` `    ``print``(``"Rabbits ="``, Rabbits)``    ``print``(``"Pigeons ="``, Heads ``-` `Rabbits)` `# This code is contributed ``# by Surendra_Gangwar`

## C#

 `// C# implementation of above approach``using` `System;` `class` `GFG``{``// Function that calculates Rabbits``static` `int` `countRabbits(``int` `Heads,``                        ``int` `Legs)``{``    ``int` `count = 0;` `    ``count = (Legs) - 2 * (Heads);``    ``count = count / 2;` `    ``return` `count;``}` `// Driver code``public` `static` `void` `Main()``{``    ``int` `Heads = 100, Legs = 300;` `    ``int` `Rabbits = countRabbits(Heads, Legs);` `    ``Console.WriteLine(``"Rabbits = "` `+ ``                       ``Rabbits);``    ``Console.WriteLine(``"Pigeons = "` `+``                     ``(Heads - Rabbits));``}``}` `// This code is contributed ``// by Akanksha Rai(Abby_akku)`

## PHP

 ``

## Javascript

 ``

Output:
```Rabbits = 50
Pigeons = 50```

Time Complexity: O(1)

Auxiliary Space: O(1)

Previous
Next