洛谷P1055 ISBN号码题解

洛谷P1055 ISBN号码题解_第1张图片

#include
#include 
using namespace std;
int main(){
	char s[100];//定义一个字符数组--输出与输出
	int c[100];//定义一个整型数组--计算
	//输入0-670-82162-4
	cin>>s;
	int i,j=0,sum=0;//sum为前九个数字之和
	for(i=0;i<strlen(s);i++){
		//如果遇到'-'跳出这层循环继续遍历
		if(s[i] == '-'){
			continue;
		}
		//将字符数字转化为整形--利用ASCII码
		//保留在整型数组中
		c[j] = s[i] - '0';
		j++;
	}
	for(i=0;i<j;i++){
		//最后一个数字为识别码
		if(i==j-1){
		//如果最后一个数字等于sum%11则输出Right
			if(sum%11 == c[i]){
				cout<<"Rigth"<<endl;
			}else{
			//否者将sum%11的结果转化为字符数字赋值于字符数组的最后一搁元素
			//最后输出这个字符数组
				s[i+3] = sum%11+'0';
				for(int k=0;k<strlen(s);k++){
					cout<<s[k]<<" ";
				}
			}
		}
		//0*1+6*2+...+2*9
		sum =sum+ c[i]*(i+1); 
	}
	
	return 0;
}

你可能感兴趣的:(题解)