Related Articles

# Count changes in Led Lights to display digits one by one

• Difficulty Level : Easy
• Last Updated : 23 Mar, 2021

Given a number n. Count the number of changes in LED light when display one after another of a given number. (Initially all LED is off). Number is given input in the form of a string.
See this image of seven segment display for better understanding.
Examples:

```Input : n = "082"
Output : 9
We need 6 LED lights to display 0 in seven segment display. We need 7 lights for 8 and 5 lights for 2. So total on/off is 6 + 1 + 2 = 9.

Input : n = "12345"
Output : 7```

Source :Morgan Stanley Interview Set 20

The idea is to pre-compute the led lights required to display a given number. Now iterate the number and keep adding the changes. For the implementation, a basic concept of string hashing is used.
Below is the implementation of above problem.

## C++

 `// CPP program to count number of on offs to``// display digits of a number.``#include``using` `namespace` `std;` `int` `countOnOff(string n)``{``    ``// store the led lights required to display``    ``// a particular number.``    ``int` `Led[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 5 };` `    ``int` `len = n.length();` `    ``// compute the change in led and keep``    ``// on adding the change``    ``int` `sum = Led[n - ``'0'``];``    ``for` `(``int` `i = 1; i < len; i++) {``        ``sum = sum + ``abs``(Led[n[i] - ``'0'``] -``              ``Led[n[i - 1] - ``'0'``]);``    ``}` `    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``string n = ``"082"``;``    ``cout << countOnOff(n);``    ``return` `0;``}`

## Java

 `// Java program to count number of on offs to``// display digits of a number.``import` `java.io.*;` `class` `GFG``{``static` `int` `countOnOff(String n)``{``    ``// store the led lights required to display``    ``// a particular number.``    ``int` `Led[] = { ``6``, ``2``, ``5``, ``5``, ``4``, ``5``, ``6``, ``3``, ``7``, ``5` `};` `    ``int` `len = n.length();` `    ``// compute the change in led and keep``    ``// on adding the change``    ``int` `sum = Led[n.charAt(``0``) - ``'0'``];``    ``for` `(``int` `i = ``1``; i < len; i++) {``        ``sum = sum + Math.abs(Led[n.charAt(i) - ``'0'``] -``            ``Led[n.charAt(i - ``1``) - ``'0'``]);``    ``}` `    ``return` `sum;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``String n = ``"082"``;``    ``System.out.println( countOnOff(n) );``}``}`

## Python 3

 `# Python3 program to count number of on offs to``# display digits of a number.` `def` `countOnOff(n):` `    ``# store the led lights required to display``    ``# a particular number.``    ``Led ``=` `[ ``6``, ``2``, ``5``, ``5``, ``4``, ``5``, ``6``, ``3``, ``7``, ``5` `]` `    ``leng ``=` `len``(n)` `    ``# compute the change in led and keep``    ``# on adding the change``    ``sum` `=` `Led[``int``(n[``0``]) ``-` `int``(``'0'``)]``    ``for` `i ``in` `range``(``1``,leng):``        ``sum` `=` `(``sum` `+` `abs``(Led[``int``(n[i]) ``-` `int``(``'0'``)]``                ``-` `Led[``int``(n[i ``-` `1``]) ``-` `int``(``'0'``)]))` `    ``return` `sum` `#Driver code``if` `__name__``=``=``'__main__'``:``    ``n ``=` `"082"``    ``print``(countOnOff(n))` `# this code is contributed by``# ash264`

## C#

 `// C# program to count number of on``// offs to display digits of a number.``using` `System;` `class` `GFG``{``public` `static` `int` `countOnOff(``string` `n)``{``    ``// store the led lights required``    ``// to display a particular number.``    ``int``[] Led = ``new` `int``[] {6, 2, 5, 5, 4,``                           ``5, 6, 3, 7, 5};` `    ``int` `len = n.Length;` `    ``// compute the change in led and``    ``// keep on adding the change``    ``int` `sum = Led[n - ``'0'``];``    ``for` `(``int` `i = 1; i < len; i++)``    ``{``        ``sum = sum + Math.Abs(Led[n[i] - ``'0'``] -``                             ``Led[n[i - 1] - ``'0'``]);``    ``}` `    ``return` `sum;``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ``string` `n = ``"082"``;``    ``Console.WriteLine(countOnOff(n));``}``}` `// This code is contributed by Shrikant13`

## PHP

 ``

## Javascript

 ``
Output:
`9`

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.

My Personal Notes arrow_drop_up