C#

2011-08-10 5 views
-2

의 체크 디지트 (Mod 11) 구현을 얻으십시오. 누구나 Mod11을 사용하여 Verification Digit를 얻으려면 C# 코드를 사용할 수 있습니까?C#

감사합니다.

public class Mod11 
{ 
    public static string AddCheckDigit(string number); 
} 

예 :

Mod11.AddCheckDigit("036532"); 

결과 : 0,365,327

+4

무엇을 시도 했습니까? 이것은 우리가 당신의 문제를 해결하는 사이트가 아닙니다. 이 사이트는 귀하가 자신의 문제를 해결하는 데 도움이되는 사이트이며, 이해를 돕기 위해 노력하고 있습니다. "코드 제공"과 같은 질문은 특히 사이트에서 시작될 가능성이 큽니다. –

+0

오, 나는 그것을 알지 못했다! ... 나는 그것을 지울 것이다 – Fraga

+0

또한 8 진법을 사용하고 체크 자릿수가 10 진수로 작동하기 때문에 예제가 특히 좋지 않습니다. 아니면'int' 인자가 형식을 보존하지 않는다는 것을 알지 못했습니까? –

답변

3

코드는 여기에 있습니다 :

public class Mod11 
{ 
    public static string AddCheckDigit(string number) 
    { 
     int Sum = 0; 
     for (int i = number.Length - 1, Multiplier = 2; i >= 0; i--) 
     { 
      Sum += (int)char.GetNumericValue(number[i]) * Multiplier; 

      if (++Multiplier == 8) Multiplier = 2; 
     } 
     string Validator = (11 - (Sum % 11)).ToString(); 

     if (Validator == "11") Validator = "0"; 
     else if (Validator == "10") Validator = "X"; 

     return number + Validator; 
    } 
} 

나는 그것이 어떤 하나 도움이되기를 바랍니다.

문제 : 나누기의 나머지가 0 또는 1이면 빼기에서 10 또는 11 중 두 자리 숫자가됩니다.이 작업은 수행되지 않으므로 검사 숫자가 10이면 X는 검사 숫자로 자주 사용되며 검사 숫자가 11이면 검사 숫자로 0이 사용됩니다. X가 사용되는 경우 검사 숫자 필드는 문자 (PIC X)로 정의되어야하거나 숫자 문제가있을 수 있습니다.