# Count of matchsticks required to represent the given number

Given a large integer as a string **str**, the task is find the number of matchsticks required to represent it.

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**.

**Examples:**

Input:str = “56”Output:11

5 sticks are required to represent 5 and

6 sticks are required to represent 6.Input:str = “548712458645878”Output:74

**Approach:** Store the count of match sticks required to represent every digit from 0 to 9 in an array sticks[]. Now traverse the given string digit by digit and add the count of sticks required for the current digit.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// stick[i] stores the count of sticks` `// required to represent the digit i` `const` `int` `sticks[] = { 6, 2, 5, 5, 4, 5,` ` ` `6, 3, 7, 6 };` `// Function to return the count of` `// matchsticks required to represent` `// the given number` `int` `countSticks(string str, ` `int` `n)` `{` ` ` `int` `cnt = 0;` ` ` `// For every digit of the given number` ` ` `for` `(` `int` `i = 0; i < n; i++) {` ` ` `// Add the count of sticks required` ` ` `// to represent the current digit` ` ` `cnt += (sticks[str[i] - ` `'0'` `]);` ` ` `}` ` ` `return` `cnt;` `}` `// Driver code` `int` `main()` `{` ` ` `string str = ` `"56"` `;` ` ` `int` `n = str.length();` ` ` `cout << countSticks(str, n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `import` `java.util.*;` `class` `GFG` `{` `// stick[i] stores the count of sticks` `// required to represent the digit i` `static` `int` `sticks[] = { ` `6` `, ` `2` `, ` `5` `, ` `5` `, ` `4` `, ` `5` `,` ` ` `6` `, ` `3` `, ` `7` `, ` `6` `};` `// Function to return the count of` `// matchsticks required to represent` `// the given number` `static` `int` `countSticks(String str, ` `int` `n)` `{` ` ` `int` `cnt = ` `0` `;` ` ` `// For every digit of the given number` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++)` ` ` `{` ` ` `// Add the count of sticks required` ` ` `// to represent the current digit` ` ` `cnt += (sticks[str.charAt(i) - ` `'0'` `]);` ` ` `}` ` ` `return` `cnt;` `}` `// Driver code` `public` `static` `void` `main(String []args)` `{` ` ` `String str = ` `"56"` `;` ` ` `int` `n = str.length();` ` ` `System.out.println(countSticks(str, n));` `}` `}` `// This code is contributed by 29AjayKumar` |

## Python3

`# Python3 implementation of the approach` `# stick[i] stores the count of sticks` `# required to represent the digit i` `sticks ` `=` `[ ` `6` `, ` `2` `, ` `5` `, ` `5` `, ` `4` `, ` `5` `,` ` ` `6` `, ` `3` `, ` `7` `, ` `6` `];` `# Function to return the count of` `# matchsticks required to represent` `# the given number` `def` `countSticks(string, n) :` ` ` `cnt ` `=` `0` `;` ` ` `# For every digit of the given number` ` ` `for` `i ` `in` `range` `(n) :` ` ` `# Add the count of sticks required` ` ` `# to represent the current digit` ` ` `cnt ` `+` `=` `(sticks[` `ord` `(string[i]) ` `-` `ord` `(` `'0'` `)]);` ` ` `return` `cnt;` `# Driver code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `string ` `=` `"56"` `;` ` ` `n ` `=` `len` `(string);` ` ` `print` `(countSticks(string, n));` `# This code is contributed by AnkitRai01` |

## C#

`// C# implementation of the approach` `using` `System;` ` ` `class` `GFG` `{` `// stick[i] stores the count of sticks` `// required to represent the digit i` `static` `int` `[]sticks = { 6, 2, 5, 5, 4, 5,` ` ` `6, 3, 7, 6 };` `// Function to return the count of` `// matchsticks required to represent` `// the given number` `static` `int` `countSticks(String str, ` `int` `n)` `{` ` ` `int` `cnt = 0;` ` ` `// For every digit of the given number` ` ` `for` `(` `int` `i = 0; i < n; i++)` ` ` `{` ` ` `// Add the count of sticks required` ` ` `// to represent the current digit` ` ` `cnt += (sticks[str[i] - ` `'0'` `]);` ` ` `}` ` ` `return` `cnt;` `}` `// Driver code` `public` `static` `void` `Main(String []args)` `{` ` ` `String str = ` `"56"` `;` ` ` `int` `n = str.Length;` ` ` `Console.WriteLine(countSticks(str, n));` `}` `}` `// This code is contributed by 29AjayKumar` |

## Javascript

`<script>` `// Javascript implementation of the approach` `// stick[i] stores the count of sticks` `// required to represent the digit i` `var` `sticks = [ 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 ]` `// Function to return the count of` `// matchsticks required to represent` `// the given number` `function` `countSticks(str, n)` `{` ` ` `var` `cnt = 0;` ` ` `// For every digit of the given number` ` ` `for` `(` `var` `i = 0; i < n; i++) {` ` ` `// Add the count of sticks required` ` ` `// to represent the current digit` ` ` `cnt += (sticks[str[i] - ` `'0'` `]);` ` ` `}` ` ` `return` `cnt;` `}` `// Driver code` `var` `str = ` `"56"` `;` `var` `n = str.length;` `document.write(countSticks(str, n));` `// This code is contributed by rutvik_56.` `</script>` |

**Output:**

11

**Time Complexity:** O(n)