一道算法题,来源于洛谷

【洛谷算法题】P1424-小鱼的航程(改进版)【入门2分支结构】Java题解 【洛谷算法题】P1424-小鱼的航程(改进版)【入门2分支结构】Java语言详细题解 阅读详情

题目描述
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如00代表英语;第一个分隔符-之后的三位数字代表出版社,例如670670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:

首位数字乘以11加上次位数字乘以22……以此类推,用所得的结果 \bmod 11mod11,所得的余数即为识别码,如果余数为1010,则识别码为大写字母XX。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这99个数字,从左至右,分别乘以1,2,…,91,2,…,9再求和,即0×1+6×2+……+2×9=1580×1+6×2+……+2×9=158,然后取158 %mod 1的结果4作为识别码

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出Right;如果错误,则输出你认为是正确的ISBN号码。

输入格式
一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

输出格式
一行,假如输入的ISBN号码的识别码正确,那么输出Right,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符-)。

输入输出样例
输入
0-670-82162-4
输出
Right
输入
0-670-82162-0
输出
0-670-82162-4

我的代码如下:

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
int data[4];
void change(string &str,int &num)
{
 stringstream ss;
 ss<<str;
 ss>>num;
}
int main()
{
  int index=0;
  int a,b1,b2,b3,c1,c2,c3,c4,c5,d,answer;
  string s;
  getline(cin,s);
  istringstream iss(s);//这句是配合getline进行流的输入,不能省略
  string tmp;
  while(getline(iss,tmp,'-'))
  {
     change(tmp,data[index++]);
  
  }
  a=data[0];
  b1=data[1]/100;
  b2=data[1]/10%10;
  b3=data[1]%10;
  c1=data[2]/10000;
  c2=data[2]/1000%10;
  c3=data[2]/100%10;
  c4=data[2]/10%10;
  c5=data[2]%10;
  d=data[3];
 if((a*1+b1*2+b2*3+b3*4+c1*5+c2*6+c3*7+c4*8+c5*9)%11==d)
	 cout<<"right";
 else
	 cout<<data[0]<<"-"<<data[1]<<"-"<<data[2]<<"-"<<(a*1+b1*2+b2*3+b3*4+c1*5+c2*6+c3*7+c4*8+c5*9)%11;
return 0;
}

我的代码(如上)通俗易懂,但是看完原作者的真的是拍案叫绝啊
原作者代码如下:

#include <stdio.h>//代码简洁明了(个人观点)
int main(void){
  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 0;
}
【洛谷算法题】P5707-上学迟到【入门1顺序结构】Java题解 【洛谷算法题】P5707-上学迟到【入门1顺序结构】Java详细题解 阅读详情

相关推荐

洛谷 P1059 明明的随机数 题解

!特别公告! 由于我还是一名学生,每周一到周五晚上才会发一篇题解,处理消息,如果处理消息不及时,请大家见谅鸭!!另外本人每周六周日都会更新两篇题解,一般下午以及晚上在线哟! 嗯,这是我第二次在优快云发题解啦!好开心啊! 好吧,今天(反正是同一天)我给大家带来了洛谷排序部分的P1059 明明的随机数这道题。 传送门 P1059 明明的随机数 大家可以和我一起审一审题目鸭! 这道题大家仔细看看之后,其实不难发现这只是一道普通的数组排序去重问题,很好理解的。 接下来敲重点了!搬好小板凳做好...

water~ 1301

ISBN校验

if(((l*1+(cbs/100*2)+(cbs/10%10*3)+(cbs%10*4)+(bh/10000*5)+(bh/1000%10*6)+(bh/100%10*7)+(bh/10%10*8)+(bh%10*9))%11)==10)//如果所得余数为10,则输出“Right”,否则就要用所得余数替换原先的尾号X。对应每行输入,假如输入的ISBN号码的识别码正确,那么输出Right,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符-)。public class 测试 {

2301_79293946的博客 1209

洛谷P8419/P9987 riapq算法题解析与实现

在算法竞赛中,动态数据集合处理是常见考点,涉及数据结构如平衡二叉搜索树、哈希表等。这些数据结构通过特定算法实现高效插入、删除和查询操作,显著提升程序性能。平衡树如AVL和红黑树能保持操作对数时间复杂度,适用于大规模数据处理。实际应用中,这类技术广泛用于数据库索引、实时系统等场景。本文以洛谷riapq题为例,详解如何结合set和unordered_map解决动态集合问题,并分享输入输出优化、惰性删除等实用技巧。

519

检测书籍号码

每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 99 位数字、11 位识别码和 33 位分隔符,其规定格式如,其中符号就是分隔符(键盘上的减号),最后一位是识别码,例如就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 00 代表英语;第一个分隔符之后的三位数字代表出版社,例如 670670 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

2301_80336148的博客 475

ADS1256单端vs差分接法详解:在STM32上实现8通道电压采集与4通道差分测量的实战对比

本文深入解析ADS1256在STM32平台上的单端8通道与差分4通道电压采集方案,详细对比两种接法的硬件设计、软件配置及性能差异。通过CubeMX配置SPI接口和优化数据读取时序,实现高精度测量,适用于工业监测等高要求场景。

weixin_29165465的博客 245

UniApp实战:5分钟搞定极光推送(JG-JPush)从配置到消息测试全流程

本文详细介绍了如何在UniApp中快速集成极光推送(JG-JPush),从基础配置到核心代码实现,再到双端调试技巧和高级功能扩展。通过5分钟全流程指南,开发者可以轻松实现消息推送功能,提升应用的用户触达率。

sat99的博客 682

ISBN 10位校验码的计算方法

国际标准书号(International Standard Book Number,简称ISBN),常用的有10位、13位,从2007年1月1日起国际标准正式修订为13位。 10位计算方法如下: 1、假设某国际标准书号号码前9位是:7-309-04547; 2、计算加权和:; 3、计算的余数:; 4、计算 的差: 如果,校验码是字母“X”;如果,校验码是数字“0

t_kong的专栏 9508

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法 前言 在训练自己模型的时候,会遇到GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢的问题。这个问题一方面是由于硬件没有设置到最佳工作状态,另一方面是代码中参数没有设置好。最近在跑Halcon DL遇到这个问题,而Halcon不像开源的几个框架那样自由,代码封装的比较多。所以遇到这种问题,只能在参数最优的情况下,通过设置硬件参数来提升性能。 当然,在跑DL之前,无论什么框

ZiLiangQin的博客 9914

CCF 201312-2ISBN号码

一.问题描述   每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社

lhyer的专栏 2222

【100%通过率】华为OD机试真题 Python 实现【最多组合直角三角形个数】【2023 Q1 | 100分】

有N条线段,长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次,每个三角形包含三条线段。

MISAYAONE的博客 1万+

rknn-toolkit推理yolov5-face.rknn模型--python代码

import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL = 'yolov5s.onnx' RKNN_MODEL = 'yolov5s.rknn' IMG_PATH = './bus.jpg' DATASET = './dataset.txt' QUANTIZE_ON = True BOX_THR.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3079

WIKIOI-1146 ISBN号码

1146 ISBN号码 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表

程序猿之洞 1924

基于深度学习的灰度图像气泡群识别与优化

灰度图像气泡群深度学习识别优化研究 本研究针对MATLAB实现的深度学习气泡群识别系统在从1445个点到4992个点扩展时出现的精度不稳定问题,提出了一套完整的解决方案。文章首先分析了问题根源,包括数据复杂度增加、类别不平衡、网络容量不足等因素,然后系统性地提出了数据预处理增强、网络架构优化、训练策略调整和后处理算法改进等优化措施。通过改进的U-Net架构、自适应直方图均衡化等技术创新,有效提升了模型在大规模气泡群图像上的识别精度和稳定性,为化工、生物医学等领域的灰度图像分析提供了可靠的技术支持。

max500600的博客 411

洛谷算法题 P1319压缩技术

设某汉字由 N * N 的 0 和 1 的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个 0,第二个数表示接下来连续有几个 1,第三个数再接下来连续有几个 0,第四个数接着连续几个 1,以此类推……例如: 以下汉字点阵图案:0001000000100000011110001000000100000010001111111。

2301_80147864的博客 1080

【动态导通电阻】p-GaN HEMTs正向和反向导通下的动态导通电阻

2024年,浙江大学的研究团队通过多组双脉冲测试方法,深入研究了两种商用p-GaN栅极HEMTs在正向和反向导通模式下的动态导通电阻(RON)特性。研究发现,肖特基型p-GaN栅极HEMTs在反向导通时动态RON比正向导通高3%-5%,而混合漏极嵌入栅注入晶体管在反向导通时动态RON降级较轻,降低约10%。此外,随着漏极电流(IDS)的增加,两种器件在反向导通时动态RON先减小后增加,形成“谷底”现象。

荷塘阅色 825

《时序分析、时序约束和时序收敛》专栏的说明与导航

《时序分析、时序约束和时序收敛》专栏的说明与导航(建议阅读)。

孤独的单刀 14万+

洛谷算法题 P1317 低洼地

我们在写题之前,要仔细思考这个题的判断条件,这样更有利于我们解题,防止一条路走到黑的情况发现;在这一题的解题过程中我们又又又用到了flag,在之前我们遇到过很多次,如果对这个知识点不熟悉,可以复习一下之前的文章:P1179 [NOIP2010 普及组] 数字统计-优快云博客洛谷算法题P1089 [NOIP2004 提高组] 津津的储蓄计划_在她那里,到了年末她会加上 20%20% 还给小z。因此小z制定了一个储蓄计划:每个月的-优快云博客。

2301_80147864的博客 1610

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

bfs算法题,洛谷搜索题单Meteor Shower S

还是洛谷搜索题单的一道bfs算法题,坑有点多,如果洛谷题解不容易理解的话,希望这篇文章可以帮的到你。代码每步都有很详细的解释。

heyiting666的博客 231

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

洛谷3927 [洛谷八连测] 一道中档题

题目链接 题目: 求出n!在k进制下后缀0的个数 下面记录了一下我sb的该题历程 ,建议直接空降正解 /*一改 这个是洛谷提高组测试赛第一题, 看到后想到了以前做过的求 n! 的后缀0数量,那个题的做法是数有多少因子5 于是类推就把k分解找出最大质因子,统计数量(当然这么做肯定不对),数据很水得了90分。 二改 举出了反例 ,比如说k=50 , 50=5*5*2 ,此时...

dizou7578的博客 171

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

洛谷---越狱问题【快速幂】

快速幂就是一种高效计算幂次方的方法,相对于直接讲a乘b次,快速幂的时间复杂度为O(logn),可以大大减少我们的运算次数这里举个栗子:当我们需要计算6的25次方的时候,我们通常会使用一个while循环来实现25个6进行相乘,虽然这样可以实现我们的目的,但是运行花费的时间比较多,但是当我们使用快速幂的时候,在运行上花费的时间会大量减少但是快速幂是如何实现时间复杂度降为O(logn)的呢?

2301_81253185的博客 899

【洛谷】一道类似基于大整数分解的公钥密码的算法题

发现一个类RSA数学原理的因子分解问题变体,以此留作记录。

AlanKSorata的博客 941

[洛谷P1404] 平均数

洛谷题目链接:平均数 题目描述 给一个长度为n的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度>=m。 输入输出格式 输入格式: N+1行, 第一行两个整数n和m 接下来n行,每行一个整数a[i],表示序列第i个数字 输出格式: 一个整数,他是最大平均数的1000倍,如果末尾有小数,直接舍去,不要用四舍五入求整。 输入输出样例 输入样例#1: 10 6 6 ...

dengtun2502的博客 778

洛谷入门:C语言顺序类算法题

这是一道关于并联电阻计算的入门算法题。解题要点包括:1)定义返回double类型的函数R;2)浮点运算中数值需用1.0形式表示;3)使用double类型声明变量r1,r2;4)直接输出函数结果。示例代码通过R(r1,r2)函数计算并联电阻值,公式为1/(1/r1+1/r2),主函数输入两个电阻值后直接输出结果(保留两位小数)。该题主要考察顺序结构编程和浮点数运算的基本概念。

jintalien的博客 205

碎碎念——刷算法题的日子(1)

开学一周,进入了刷算法题的阶段,用一周的时间完成了洛谷新手村的任务(感觉自己蒟蒻),适当进行一下总结,之后会尽量保持一周一次总结的习惯。 新手村大部分都是些基础题,就算是赛前热身的阶段,感受一下敲代码,有技巧和难度的题也有,但是不多,下面就说几点自己的坑。 条件判断的顺序 第一次深刻感受到 || 和 &amp;amp;amp;&amp;amp;amp;的影响之大。在一个if判断语句里,如果有多个条件的话,很有必要考虑一下哪个条件...

hplong 372

构建动态更新的洛谷算法题单:从原理到实践的路径规划

在算法学习与竞赛准备中,系统化的刷题路径至关重要。其核心原理在于通过结构化的题目序列,帮助学习者循序渐进地掌握算法概念、数据结构和解题技巧。传统的静态题单面临时效性不足的挑战,难以跟上快速演变的算法竞赛趋势和题目库更新。为此,引入动态更新机制能显著提升学习路径的技术价值,它能够持续集成最新的比赛高频考点和社区热议题目,确保训练内容与当前实战紧密接轨。这种机制通常依赖自动化脚本进行数据抓取与多维度评估,并结合社区反馈进行优化,最终服务于算法知识体系的构建与薄弱环节的针对性强化。应用场景广泛覆盖从巩固语法的初学

weixin_33866037的博客 295

[洛谷P3501] [POI2010]ANT-Antisymmetry

洛谷题目链接:[POI2010]ANT-Antisymmetry 题目描述 Byteasar studies certain strings of zeroes and ones. Let be such a string. By we will denote the reversed (i.e., "read backwards") string , and by we will...

dengtun2502的博客 367
上一篇: 动态规划 走方格利用二维数组
下一篇: 求两个数的最大公约数
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨里的无聊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值