Реализации алгоритмов/Алгоритм Луна: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 43:
 
КонецФункции
 
//Общепринятый алгоритм
&НаСервере
Функция ПроверкаНомераКарты(Текст) Экспорт
//АлгоритмЛуна
Сумма = 0;
Если ДлинаНомера%2=0 Тогда //четная карта
Для i = 0 по ДлинаНомера-1 Цикл
НомерЦифры = i+1;
Цифра = Число(Сред(Текст,НомерЦифры,1));
Сумма = Сумма+?(НомерЦифры%2=1,?(Цифра*2>9,Цифра*2-9,Цифра*2),Цифра);
КонецЦикла;
иначе
Для i = 0 по ДлинаНомера-1 Цикл
НомерЦифры = i+1;
Цифра = Число(Сред(Текст,НомерЦифры,1));
Сумма = Сумма+?(НомерЦифры%2=0,?(Цифра*2>9,Цифра*2-9,Цифра*2),Цифра);
КонецЦикла;
КонецЕсли;
Возврат Сумма%10 = 0;
КонецФункции
 
== Ruby ==