计算 LED 灯的变化以一一显示数字
给定一个数字 n。计算给定数字一个接一个显示时LED灯的变化次数。 (最初所有 LED 均熄灭)。 Number 以字符串的形式给出输入。
请参阅这张七段显示器的图像以更好地理解。
例子:
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
来源:摩根士丹利采访集20
这个想法是预先计算显示给定数字所需的 LED 灯。现在迭代数字并继续添加更改。对于实现,使用了字符串散列的基本概念。
下面是上述问题的实现。
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] - '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] - '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
输出:
9