身份证验证 题解
2026-06-06 15:08:36
发布于:江苏
9阅读
0回复
0点赞
本题难点在于题目难理解,其实就是先输入身份证,接着拆分,每位按权重相加得到权值,最后取余即可。
具体代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int f(char x){
if(x=='X') return 10;
return int(x)-'0';
}
int main(){
int sum=0;
string s;
cin>>s;
for(int i=0;i<17;i++){
sum+=f(s[i])*a[i];
}
int x=sum%11;
string v="10X98765432";
if(s[17]==v[x]){
cout<<"Yes"<<endl;
} else {
cout<<"No"<<endl;
}
return 0;
}
这里空空如也







有帮助,赞一个