Lun
의견: 0
1 \(s / 64\) \(MB / 50\) points
Mom Tihana wanted to buy her daughter Leda a plush toy via an online store. During the purchase
process, the system asked for a credit card number to be entered. However, the purchase failed
because Tihana mistakenly wrote one of the digits from that number. Internet research has revealed
that such systems recognize the wrong number based on Luhn's algorithm.
This algorithm confirms the correctness of the number using a control digit which is always the last
digit in the number. Steps to determine the validity of a number are:
●
Starting from the second digit from the right in the number (tens of the number), double the
value of every second digit to the left. If this product is greater than nine, then the digits of that
product should be summed up.
●
Calculate the sum of all values obtained in the previous step.
●
The sum thus obtained should be multiplied by nine and it should be determined the
remainder of division by ten.
●
If the resulting remainder is equal to the last digit of the number (unit), the number is
considered valid.
E.g. account number 79927398713 is considered valid because the end right digit 3 can be obtained
from the remaining digits in the way described.
Account
number
7
9
9
2
7
3
9
8
7
1
3
Double
every other
7
18
9
4
7
6
9
16
7
2
-
Sum
7
9
(\(1+8\))
9
4
7
6
9
7
(\(6+1\))
7
2
= 67
(Sum after intermediate st\(ep \cdot 9\)) mod 10 = (\(67 \cdot 9\)) mod \(10 = 603\) mod 10 = 3
Write a program that loads the card number as a \(N\) -string that consists only of digits and exactly one
sign "x", and prints the smallest o\(ne-di\)git number which we can replace the sign "x" with so that the
account number is valid.
In the test samples totally worth 25 points, the sign "x" will always be in the last place in the string.
1 \(s / 64\) \(MB / 50\) points
In the first line there is an integer number \(N\) (1 ≤ \(N\) ≤ 100) , the length of string from the task's test.
In the second line there is a string of length \(N\) consisting of just signs “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7” ,
“8”, “9” and exactly one sign "x".
In the only line of the output it should be printed the required o\(ne-di\)git number.
11
7992739871x
5
x2464
10
93380x1696output
output
3
5
1평가 및 의견
Lun
Log in to rate problems.
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
Lun