Sebuah EAN-8 barcode meliputi 7 digit informasi dan checksum digit ke-8.
Checksum dihitung dengan mengalikan digit dengan 3 dan 1 secara bergantian, menambahkan hasilnya, dan mengurangi dari kelipatan 10 berikutnya.
Misalnya, diberi angka 2103498
:
Digit: 2 1 0 3 4 9 8
Multiplier: 3 1 3 1 3 1 3
Result: 6 1 0 3 12 9 24
Jumlah digit yang dihasilkan ini adalah 55 , sehingga digit checksum adalah 60 - 55 = 5
Tantangan
Tugas Anda adalah, diberi barcode 8 digit, memverifikasi apakah valid - mengembalikan nilai kebenaran jika checksum valid, dan sebaliknya palsu.
- Anda dapat mengambil input dalam formulir berikut:
- String, panjang 8 karakter, mewakili digit kode batang
- Daftar 8 bilangan bulat, digit barcode
- Integer non-negatif (Anda dapat mengasumsikan nol terkemuka di mana tidak ada yang diberikan, yaitu
1
=00000001
, atau meminta input dengan nol yang diberikan)
- Builtin yang menghitung checksum EAN-8 (yaitu, ambil 7 digit pertama dan hitung yang terakhir) dilarang.
- Ini adalah kode-golf , jadi program terpendek (dalam byte) menang!
Uji Kasus
20378240 -> True
33765129 -> True
77234575 -> True
00000000 -> True
21034984 -> False
69165430 -> False
11965421 -> False
12345678 -> False