日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java黑皮书课后题第3章:**3.9(商业:检验ISBN-10)ISBN-10由10个个位整数d1d2d3d4d5d6d7d8d9d10组成,最后一位d10是校验和,输入前9个数,显示10位ISBN

發布時間:2024/7/23 java 23 豆豆

**3.9(商業:檢驗ISBN-10)ISBN-10由10個個位整數d1d2d3d4d5d6d7d8d9d10組成,最后一位d10是校驗和,輸入前9個數,顯示10位ISBN

  • 題目
    • 題目概述
    • 運行示例
    • 破題
  • 代碼
  • 致謝

題目

題目概述

**3.9(商業:檢驗ISBN-10)ISBN-10由10個個位整數d1d2d3d4d5d6d7d8d9d10組成,最后一位d10是校驗和,它是使用下面的公式用另外9個數計算出來的:
(1 * d1 + 2 * d2+ 3 * d3+ 4 * d4+ 5 * d5+ 6 * d6+7 * d7 + 8 * d8+ 9 * d9) % 11
如果校驗和為10,那么按照ISBN-10的習慣,最后一位應該表示為X。編寫程序,提示用戶輸入前9個數,然后顯示10位ISBN(包括前面起始位置的0)。程序應讀取一個整數輸入

運行示例

Enter the first 9 digits of an ISBN as integer: 013601267
The ISBN-10 number is 0136012671

Enter the first 9 digits of an ISBN as integer: 013031997
The ISBN-10 number is 013031997X

破題

特別注意:int可以接收的范圍是-2147483648~2147483647(10位數),一定要記住大體范圍,不然容易像筆者一樣,出去比賽把人學校本來跑程序還挺流暢的電腦搞死機了

  • 獲取輸入
  • 通過除、求余方式求得d1~d9這9個數
  • 通過上面公式求得d10
  • 如果d10 < 10,一位一位轉為字符串再合并;如果d10==10,則最后的d10替換成X即可
  • 代碼

    import java.util.Scanner;public class Test3_9 {public static void main(String[] args) {// 獲取數據Scanner input = new Scanner(System.in);System.out.print("Enter the first 9 digits of an ISBN as integer: ");String temp = input.next();int i = Integer.parseInt(temp);// 處理數據:賦值d1~d9int d1 = i / 100000000;i %= 100000000;int d2 = i / 10000000;i %= 10000000;int d3 = i / 1000000;i %= 1000000;int d4 = i / 100000;i %= 100000;int d5 = i / 10000;i %= 10000;int d6 = i / 1000;i %= 1000;int d7 = i / 100;i %= 100;int d8 = i / 10;i %= 10;int d9 = i;// 求d10int d10 =(1 * d1 + 2 * d2 + 3 * d3 + 4 * d4 + 5 * d5 + 6 * d6 +7 * d7 + 8 * d8 + 9 * d9) % 11;// 輸出String str;if(d10 < 10) {str = temp + d10;}else{str = temp + "X";}System.out.println("The ISBN-10 number is " + str);} }

    致謝

    感謝 @StephenMoz 提醒,原程序無法輸出第一位0的問題已經解決
    在此使用Integer包裝類,先通過字符串接收,再轉換為int型
    任務完成后輸出字符串和校驗位

    總結

    以上是生活随笔為你收集整理的Java黑皮书课后题第3章:**3.9(商业:检验ISBN-10)ISBN-10由10个个位整数d1d2d3d4d5d6d7d8d9d10组成,最后一位d10是校验和,输入前9个数,显示10位ISBN的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。