Код по алгоритму. Расчет контрольной суммы - C#
Формулировка задачи:
Помогите написать код по этому алгоритму.
1) Пользователь может выбрать ввод 8-ми или на 13-ти чисел.(вводит их сам)
2) Сложить цифры стоят на чётных местах.
3) Результат сложения УМНОЖИТЬ на три.
4) Сложить цифры стоящие на нечётных местах кроме контрольных цифр.
5) Сложите 2 и 3 действие.
6) От полученной суммы в 5 действии отбросите десятки.
7) Из 10 вычесть число которое получилось в 6 пункте.
8) Сравнить 7 пункт с контрольной цифрой.
Решение задачи: «Код по алгоритму. Расчет контрольной суммы»
textual
Листинг программы
using System;
namespace EAN13
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(EAN13("9785845905635"));
Console.WriteLine(EAN13("0882224925006"));
Console.ReadKey();
}
public static bool EAN13(string barcode)
{
int cnt = 0;
int sum = 0;
if (barcode.Length != 13 & barcode.Length != 8)
throw new Exception("Bad barcode legth");
for (int j = barcode.Length - 2; j > -1; j--)
{
cnt += 1;
if (cnt % 2 == 0)
{
sum += int.Parse(barcode[j].ToString());
}
else
{
sum += int.Parse(barcode[j].ToString()) * 3;
}
}
sum = (10 - (sum % 10)) % 10;
if (barcode.Substring(barcode.Length - 1, 1) == sum.ToString())
return true;
return false;
}
}
}