【p081】ISBN號碼

Time Limit: 1 second
Memory Limit: 50 MB

【問題描述】

????每一本正式出版的圖書都有一個ISBN號碼與之對應,ISBN碼包括9位數字、1位識別碼和3位分隔符,其規定格式如“x-xxx-xxxxx-x”,其中符號“-”是分隔符(鍵盤上的減號),最后一位是識別碼,例如0-670-82162-4就是一個標準的ISBN碼。ISBN碼的首位數字表示書籍的出版語言,例如0代表英語;第一個分隔符“-”之后的三位數字代表出版社,例如670代表維京出版社;第二個分隔符之后的五位數字代表該書在該出版社的編號;最后一位為識別碼。
????識別碼的計算方法如下:
????首位數字乘以1加上次位數字乘以2……以此類推,用所的結果mod11,所得的余數即為識別碼,如果余數為10,則識別碼為大寫字母X。例如ISBN號碼0-670-82162-4中的識別碼4是這樣得到的:對067082162這9個數字,從左到右,分別乘以1,2,…9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的結果4作為識別碼。
????你的任務是編寫程序判斷輸入的ISBN號碼中識別碼是否正確,如果正確,則僅輸出“Right”;如果錯誤,則輸出你認為是正確的ISBN號碼。

【輸入格式】

????只有一行,是一個字符序列,表示一本書的ISBN號碼(保證輸入符合ISBN號碼的格式要求)。

【輸出格式】

????共1行,假如輸入的ISBN號碼的識別碼正確,那么輸出“Right”;否則,按照規定的格式,輸出正確的ISBN號碼(包括分隔符“-”)。

【輸入樣例1】

????0-670-82162-4

【輸出樣例1】

????Right

【輸入樣例2】

????0-670-82162-0

【輸出樣例2】

????0-670-82162-4
【題解】
把數字取出來放在1..9.然后對于識別碼特判,如果是X則a[10]=10否則等于相應的數字。
然后for i= 1 to 9 然后ans+=a[i]*i;
ans再取模一下。
看一下是否和a[10]相同。相同輸出Right。否則把原來的字符串最后一位改成相應的值。
注意如果是10要改成X!!!
【代碼】
#include <cstdio>char s[22];
int a[22] = { 0 };void input_data()
{scanf("%s", s); //輸入這個字符串for (int i = 1; i <= 12; i++)if (s[i - 1] != '-') //如果不是減號則存入a數組中a[++a[0]] = s[i - 1] - '0';if (s[12] == 'X') //判斷一下識別碼是啥。a[++a[0]] = 10;elsea[++a[0]] = s[12] - '0';
}void get_ans()
{int ans = 0;for (int i = 1; i <= 9; i++) //獲取識別碼ans += a[i] * i;ans %= 11; //取模if (ans == a[10]) //判斷是否正確printf("Right");else{if (ans == 10) //不正確就自己改成正確的。要特判!s[12] = 'X';elses[12] = ans + '0';printf("%s", s);}
}int main()
{input_data();get_ans();return 0;
}


 

轉載于:https://www.cnblogs.com/AWCXV/p/7632315.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391211.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391211.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

gitlab bash_如何編寫Bash一線式以克隆和管理GitHub和GitLab存儲庫

gitlab bashFew things are more satisfying to me than one elegant line of Bash that automates hours of tedious work. 沒有什么比讓Bash自動完成數小時繁瑣工作的Bash優雅系列令我滿意的了。 As part of some recent explorations into automatically re-creating my la…

寒假學習筆記(4)

2018.2.11 類中的常成員 關鍵字const&#xff0c;在類定義中聲明數據成員使用關鍵字限定&#xff0c;聲明時不能初始化。初始化列表&#xff0c;類中的任何函數都不能對常數據成員賦值&#xff0c;包括構造函數。為構造函數添加初始化列表是對常數據成員進行初始化的唯一途徑。…

svm和k-最近鄰_使用K最近鄰的電影推薦和評級預測

svm和k-最近鄰Recommendation systems are becoming increasingly important in today’s hectic world. People are always in the lookout for products/services that are best suited for them. Therefore, the recommendation systems are important as they help them ma…

Oracle:時間字段模糊查詢

需要查詢某一天的數據&#xff0c;但是庫里面存的是下圖date類型 將Oracle中時間字段轉化成字符串&#xff0c;然后進行字符串模糊查詢 select * from CAINIAO_MONITOR_MSG t WHERE to_char(t.CREATE_TIME,yyyy-MM-dd) like 2019-09-12 轉載于:https://www.cnblogs.com/gcgc/p/…

cogs2109 [NOIP2015] 運輸計劃

cogs2109 [NOIP2015] 運輸計劃 二分答案樹上差分。 STO鏈剖巨佬們我不會&#xff08;太虛偽了吧 首先二分一個答案&#xff0c;下界為0,上界為max{路徑長度}。 然后判斷一個答案是否可行&#xff0c;這里用到樹上差分。 &#xff08;闊以理解為前綴和&#xff1f;&#xff1f;&…

leetcode 690. 員工的重要性(dfs)

給定一個保存員工信息的數據結構&#xff0c;它包含了員工 唯一的 id &#xff0c;重要度 和 直系下屬的 id 。 比如&#xff0c;員工 1 是員工 2 的領導&#xff0c;員工 2 是員工 3 的領導。他們相應的重要度為 15 , 10 , 5 。那么員工 1 的數據結構是 [1, 15, [2]] &#x…

組件分頁_如何創建分頁組件

組件分頁The theme for week #17 of the Weekly Coding Challenge is:每周編碼挑戰第17周的主題是&#xff1a; 分頁 (Pagination) A Pagination Component is used on websites where you have more content available than you want to display at one time to the user so …

web-項目管理

總結 目的是 1.可查詢 2.方便團隊管理 每個成員都可以看到任何東西 項目 需求 計劃 bug 按模板來 1.問題描述 2.原因分析 3.解決方法 開發 提交代碼 按模板來 1.問題描述 2.原因分析 3.解決方法 打包 更新說明文件.txt 按模板來 一、更新說明 1.問題描述 1&#xff09;計劃號 2…

cnn對網絡數據預處理_CNN中的數據預處理和網絡構建

cnn對網絡數據預處理In this article, we will go through the end-to-end pipeline of training convolution neural networks, i.e. organizing the data into directories, preprocessing, data augmentation, model building, etc.在本文中&#xff0c;我們將遍歷訓練卷積神…

leetcode 554. 磚墻

你的面前有一堵矩形的、由 n 行磚塊組成的磚墻。這些磚塊高度相同&#xff08;也就是一個單位高&#xff09;但是寬度不同。每一行磚塊的寬度之和應該相等。 你現在要畫一條 自頂向下 的、穿過 最少 磚塊的垂線。如果你畫的線只是從磚塊的邊緣經過&#xff0c;就不算穿過這塊磚…

django-rest-framework解析請求參數過程詳解

https://www.jb51.net/article/165699.htm 轉載于:https://www.cnblogs.com/gcgc/p/11544187.html

遞歸 和 迭代 斐波那契數列

#include "stdio.h"int Fbi(int i) /* 斐波那契的遞歸函數 */ { if( i < 2 ) return i 0 ? 0 : 1; return Fbi(i - 1) Fbi(i - 2); /* 這里Fbi就是函數自己&#xff0c;等于在調用自己 */ }int main() { int i; int a[40]; printf("迭代顯示斐波那契數列…

單元測試 python_Python單元測試簡介

單元測試 pythonYou just finished writing a piece of code and you are wondering what to do. Will you submit a pull request and have your teammates review the code? Or will you manually test the code? 您剛剛編寫了一段代碼&#xff0c;并且想知道該怎么做。 您…

飛行模式的開啟和關閉

2019獨角獸企業重金招聘Python工程師標準>>> if(Settings.System.getString(getActivity().getContentResolver(),Settings.Global.AIRPLANE_MODE_ON).equals("0")) { Settings.System.putInt(getActivity().getContentResolver(),Settings.Global.AIRPLA…

消解原理推理_什么是推理統計中的Z檢驗及其工作原理?

消解原理推理I Feel:我覺得&#xff1a; The more you analyze the data the more enlightened, data engineer you will become.您對數據的分析越多&#xff0c;您將變得越發開明。 In data engineering, you will always find an instance where you need to establish whet…

pytest+allure測試框架搭建

https://blog.csdn.net/wust_lh/article/details/86685912 https://www.jianshu.com/p/9673b2aeb0d3 定制化展示數據 https://blog.csdn.net/qw943571775/article/details/99634577 環境說明&#xff1a; jdk 1.8 python 3.5.3 allure-commandline 2.13.0 文檔及下載地址&…

lintcode433 島嶼的個數

島嶼的個數 給一個01矩陣&#xff0c;求不同的島嶼的個數。 0代表海&#xff0c;1代表島&#xff0c;如果兩個1相鄰&#xff0c;那么這兩個1屬于同一個島。我們只考慮上下左右為相鄰。 您在真實的面試中是否遇到過這個題&#xff1f; Yes樣例 在矩陣&#xff1a; [[1, 1, 0, …

大數據分析要學習什么_為什么要學習數據分析

大數據分析要學習什么The opportunity to leverage insights from data has never been greater.利用來自數據的洞察力的機會從未如此大。 Humans tend to generate a lot of data each day - from heart rates to favorite songs, fitness goals and movie preferences. You …

POJ - 3257 Cow Roller Coaster (背包)

題目大意&#xff1a;要用N種材料建一條長為L的路&#xff0c;如今給出每種材料的長度w。起始地點x。發費c和耐久度f 問&#xff1a;在預算為B的情況下&#xff0c;建好這條路的最大耐久度是多少 解題思路&#xff1a;背包問題 dp[i][j]表示起始地點為i。發費為j的最大耐久度…

leetcode 1473. 粉刷房子 III(dp)

在一個小城市里&#xff0c;有 m 個房子排成一排&#xff0c;你需要給每個房子涂上 n 種顏色之一&#xff08;顏色編號為 1 到 n &#xff09;。有的房子去年夏天已經涂過顏色了&#xff0c;所以這些房子不需要被重新涂色。 我們將連續相同顏色盡可能多的房子稱為一個街區。&a…