#113. isbn号码

#113. isbn号码

题目描述

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。识别码的计算方法如下:首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对0670821629个数字,从左至右,分别乘以12...,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。

这一题主要思路就是用上字符串,然后进行强模拟。题目大体比较简单,但是。。。。。。和其他字符串类型题目一样,套路太多!!!

   首先是输入,再是进行计算,都还算“简单”?(不存在的)!

眼瞎的我没看到还要分别乘19再求和,结果BOOOOON!!!

脑残的我不知道还要先从字符串T[0]开始处理,结果BOOOOON!!!

智障的我没想到还要累加s 后还要mod 11,结果BOOOOON!!!

白痴的我不晓得还有余数等于0这回事,结果BOOOOON!!!

一次次落入坑中的我再一次从地雷堆中爬了出来,拿了50

额。。。怎么是50 ???一脸懵逼?

原来T[12]等于X后执行了两次操作,掀桌!

加上了“return 0”之后终于满血复活。。。。。。

废话少说,上代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

     int s=0,i;

     string t;

     cin>>t;

     s+=int(t[0]-'0')*1;

     s+=int(t[2]-'0')*2;

     s+=int(t[3]-'0')*3;

     s+=int(t[4]-'0')*4;

     s+=int(t[6]-'0')*5;

     s+=int(t[7]-'0')*6;

     s+=int(t[8]-'0')*7;

     s+=int(t[9]-'0')*8;

     s+=int(t[10]-'0')*9;

     s=s%11;

     if(s==10&&t[12]=='X')

     {

        cout<<"Right"<<endl;

         return 0;

    }

     if(s==10&&t[12]!='X')

     {

         for(i=0;i<=11;i++)cout<<t[i];

        cout<<'X'<<endl;

         return 0;

    }

    if(s==int(t[12]-'0'))cout<<"Right"<<endl;

    if(s!=int(t[12]-'0'))

     {

         for(i=0;i<=11;i++)cout<<t[i];

        cout<<s<<endl;

    }

}

啊,就是辣么帅

from selenium import webdriver from selenium.webdriver.common.by import By import time #WebDriver对象常用的属性和方法 #close() 关闭选项卡 #quit() 退出浏览器 #edge.set_window_size(width,height) 设置浏览器的大小 #maximize_window() 最大化窗口 #minimize_window() 最小化窗口 #back() 后退 #forward() 前进 #refresh() 刷新页面 #get_screenshot_as_file(filename) 把当前窗口截图并保存到filename #page_source 得到渲染后的页面代开发者工具中元素选项卡下的内容一样 #find_element(by,value) 得到一个WebElement对象 # by选择元素的方法 by=By. # By.CLASS_NAME class类名 # By.ID id属性 # By.LINK_TEXT 链接文本 # By.TAG_NAME 标签名 # By.XPATH xpath路径 # By.CSS_SELECTOR css选择器 # By.PARTIAL_LINK_TEXT 部分链接文本 # By.NAME 名称 # value值 #find_elements(by,value) 参数含义find_element,得到的结果是list对象,其元素是WebElement对象 #window_handles 当前浏览器的选项卡句柄 #switch_to.window() 切换到哪个句柄窗口 #WebElement对象的常用属性和方法 #find_element,find_elements 同上 #clear() 清空输入框、文本域中的内容 #tag_name 标签的名称 #click() 模拟鼠标单击操作 #text 元素的文本内容 #get_attribute(name) 获取元素name属性的值 #size 元素的大小 #screenshot(filename) 对元素进行截图并保存 #js = "window.open(&#39;about:blank&#39;)" #el = edge.find_element(by=By.ID,value=&#39;newBook&#39;) # els #=edge.find_elements(by=By.XPATH,value=&#39;//*[@id="newBook"]/div/div[3]//a&#39;) # el= els[0] # el.screenshot(&#39;./spider/el.png&#39;) #edge.refresh() #获取人民邮电出版社新书推荐下电子栏目中书的 书名、作者、价格 edge = webdriver.Edge() url = &#39;https://www.ptpress.com.cn/&#39; edge.get(url) edge.maximize_window() el = edge.find_element(by=By.XPATH,value=&#39;//div[@id="newBook"]/div/div[2]/span&#39;) print(el.text) el.click() time.sleep(2) books = [] #用来保存结果的 booka = edge.find_elements(by=By.XPATH,value=&#39;//*[@id="newBook"]/div/div[3]//a&#39;) for a in booka: book = {} a.click() whs = edge.window_handles #获取当前浏览器选项卡 edge.switch_to.window(whs[-1]) #切换到新的选项卡 time.sleep(8) #等待数据加载 book[&#39;name&#39;] = edge.find_element(by=By.CLASS_NAME,value="book-name").text book[&#39;price&#39;] = edge.find_element(by=By.CLASS_NAME,value=&#39;price&#39;).text book[&#39;author&#39;] = edge.find_element(by=By.CLASS_NAME,value=&#39;book-author&#39;).text books.append(book) edge.close() edge.switch_to.window(whs[0]) print(books) #作业:获取两个类别的新书推荐书籍信息:书名、作者、价格,ISBN input()
最新发布
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值