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

• Difficulty Level : Basic
• Last Updated : 14 Apr, 2021

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```

My Personal Notes arrow_drop_up
Recommended Articles
Page :