모듈 식 산술을 사용하여 다음과 같은 방정식을 간단하게 만듭니다.
checkdigit = (sum_digits*9)%10
= ((sum_digits)%10*9)%10
이제 sum_digits%10
문자열을 사용하여 평가하는 것은 매우 간단합니다.
C ++ 구현 :-
#include<iostream>
using namespace std;
int main() {
char* str = new char[100];
cout<<"Enter the String: ";
cin>>str;
int val = 0;
for(int i=0;str[i]!=0;i++) {
val = (val+str[i]-'0')%10;
}
val = (val*9)%10;
cout<<"Checkdigit("<<str<<") = "<<val;
return 0;
}
-------------------Stringstream은 모든 숫자를 계산 한 다음 '0'을 추가하여 각 숫자를 문자로 변환해야합니다. 숫자 값을 다시 얻으려면 '0'을 다시 빼야합니다. 모듈로 접근 방식을 직접 사용하는 것이 좋습니다.
출처
https://stackoverflow.com/questions/22006836