Как проверить действительность канадского номера социального страхования на C #?

Мне было поручено написать алгоритм на C #, который проверяет действительность канадского номера социального страхования (SIN). Вот шаги для проверки SIN.

Дан пример Число: 123 456 782

  1. Удалить контрольную цифру (последнюю цифру): 12345678 2
  2. Извлечь четные цифры (2 , 4,6,8-й разряд): 1 2 3 4 5 6 7 8
  3. Двойные:
     2 4 6 8
    | | | |
     vvvv
     4 8 12 16 
    
  4. Сложите цифры вместе:
     4 + 8 + 1 + 2 + 1 + 6 = 22 
  5. Сложите нечетные цифры:
     1 + 3 + 5 + 7 = 16 
      Итого: 38 

Алгоритм достоверности

  1. Если сумма кратна 10, контрольная цифра должна быть равна нулю.
  2. В противном случае вычтите сумму из следующего наивысшего кратного 10 (в данном случае 40).
  3. Контрольная цифра для этого SIN должна быть равна разнице числа и сумм, полученных ранее (в данном случае 40-38 = 2 ; контрольная цифра 2, поэтому число действительное)

Я не понимаю, как на самом деле реализовать это на C #, как мне это сделать?

8
задан George Stocker 24 November 2010 в 16:02
поделиться