码迷,mamicode.com
首页 > 其他好文 > 详细

201312-2 ISBN号码

时间:2020-06-19 22:57:24      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:image   etc   isbn   nbsp   ash   进入   http   tmp   java   

技术图片

 

思路

暴力解决

注意事项

  • 数字转字符,字符转数字
  • code=10的时候,是‘X‘
#include<bits/stdc++.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    char ch[13] = {};
    char tmp;
    int code = 0;
    for(int i = 0; i < 12; i++){
        cin >> tmp;    
        ch[i] = tmp;        
        if(i == 0){
            tmp = (int)(tmp - 0);
            code += tmp;
        }else if(i >= 2 && i <= 4){
            tmp = (int)(tmp - 0);
            code += tmp * i;
        }else if(i >= 6 && i<= 10){
            tmp = (int)(tmp - 0);
            code += tmp * (i-1);
        }
        code %= 11;    
    }
    cin >> tmp;
    // 第一次忘记判断该条件,导致的得不了满分 
    if(tmp == X && code == 10){
        cout << "Right" << endl;
    }else{
        tmp = (int)(tmp - 0);    
        if(tmp == code){
            cout << "Right" << endl;
        }else{            
            if(code == 10){
                ch[12] = X;
            }else{
                // 数字转字符 
                char cha;
                stringstream s;
                s << code;
                s >> cha;    
                ch[12] = cha;    
            }        
            int i = 0;
            while(i < 13){
                cout << ch[i++];            
            }
        }
    }    
    return 0;
}

一个简单的写法,参考csdn的小哥哥

思路

  • 用数组给数字和字符做了一个映射
  • gets和puts的用法
 char a[14], mod[12] = "0123456789X"; //先将mod11后的十一个字符存入数组
  gets(a); //输入字符串
  int i, j = 1, t = 0;
  for(i = 0; i < 12; i++) {
        if(a[i] == -) continue; //字符串为分隔符‘-’时跳过此次循环进入下一次循环
    t += (a[i]-0)*j++; //t储存 第j个  数字  * j 的和
  }
  if(mod[t%11] == a[12]) printf("Right");
  else {
      a[12] = mod[t%11]; //若识别码错误,则赋正确的识别码,然后输出
      puts(a);
  }
  return;
————————————————
版权声明:本文为CSDN博主「ZHUO_SIR」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZHUO_SIR/java/article/details/86628401

 

201312-2 ISBN号码

标签:image   etc   isbn   nbsp   ash   进入   http   tmp   java   

原文地址:https://www.cnblogs.com/YC-L/p/13166560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!