a054. 電話客服中心
根據輸入提供的身分證後9碼,去列出符合規範的首位字母碼。
想到之前「a020. 身分證檢驗 」寫過的程式,複製貼上變成一個方法,檢查該身分證字號是否有效。
main裡面只要簡單的for迴圈讓A~Z跑過一遍,符合的列印出來就好,太輕鬆了吧!但是效率並沒有反向推算來的高喔,有興趣的可以試試看。
程式碼如下:
- /* a054. 電話客服中心
- *
- *
- * 2020/3/7
- */
- import java.util.Scanner;
- public class Pa054{
- public static void main(String[] args){
- Scanner scanner = new Scanner(System.in);
- while(scanner.hasNext()){
- String s = scanner.nextLine();
- for(int i = 'A'; i <= 'Z'; i++){
- System.out.print(isValidid((char)i + s)? (char)i: "");
- }
- System.out.println();
- }
- }
- public static boolean isValidid(String input){
- String[] idNum = {"10", "11", "12", "13", "14", "15", "16", "17", "34",
- "18", "19", "20", "21", "22", "35", "23", "24", "25",
- "26", "27", "28", "29", "32", "30", "31", "33"};
- int[] num = {1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1};
- input = idNum[input.charAt(0) - 'A'] + input.substring(1);
- int sum = 0;
- for(int i = 0; i < input.length(); i++){
- sum += num[i] * Character.getNumericValue(input.charAt(i));
- }
- return sum % 10 == 0;
- }
- }
沒有留言:
張貼留言