PAT-L1-8.

題目:
時間限制
400 ms
內(nèi)存限制
65536 kB
代碼長度限制
8000 B
判題程序
Standard
作者
陳越
一個合法的身份證號碼由17位地區(qū)、日期編號和順序編號加1位校驗碼組成温自。校驗碼的計算規(guī)則如下:
首先對前17位數(shù)字加權(quán)求和全蝶,權(quán)重分配為:{7奋姿,9,10,5煮仇,8嫉髓,4观腊,2,1算行,6梧油,3,7州邢,9儡陨,10,5量淌,8骗村,4,2}呀枢;然后將計算的和對11取模得到值Z胚股;最后按照以下關(guān)系對應(yīng)Z值與校驗碼M的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
現(xiàn)在給定一些身份證號碼,請你驗證校驗碼的有效性裙秋,并輸出有問題的號碼琅拌。
輸入格式:
輸入第一行給出正整數(shù)N(<= 100)是輸入的身份證號碼的個數(shù)。隨后N行摘刑,每行給出1個18位身份證號碼进宝。
輸出格式:
按照輸入的順序每行輸出1個有問題的身份證號碼。這里并不檢驗前17位是否合理枷恕,只檢查前17位是否全為數(shù)字且最后1位校驗碼計算準(zhǔn)確党晋。如果所有號碼都正常,則輸出“All passed”。
輸入樣例1:
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
輸出樣例1:
12010X198901011234
110108196711301866
37070419881216001X
輸入樣例2:
2
320124198808240056
110108196711301862
輸出樣例2:
All passed


代碼部分:

import java.util.Scanner;

public class L18 {
    public static boolean check(String s)
    {     
        String c = s.substring(0,s.length()-1);
        String[] num={"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
        String[] check={"1","0","X","9","8","7","6","5","4","3","2"};
        int sum=0;
        for(int i=0;i<s.length()-1;i++)
        {   
            int n ;
            try{
               n = Integer.valueOf(s.substring(i,i+1));
            } catch(NumberFormatException e)
            {
                return false;
            }
              String s2 = num[i];
              int n2 = Integer.valueOf(s2);
              sum+=n*n2;
        }
        sum=sum%11;
        String s3=s.substring(s.length()-1);
        if(s3.equals(check[sum]))
        return true;
        else
            return false;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        Scanner scanner = new Scanner (System.in);
        int n,j=0;
        n=scanner.nextInt();
        String s;
        scanner.nextLine();
        
        for(int i=0;i<n;i++)
        {
            s=scanner.nextLine();
            if(!check(s))
                System.out.println(s);
            else j++;
        }
        if(j==n)System.out.println("All passed");
    }

}

分析部分 :
為了方便權(quán)值和數(shù)位對應(yīng)未玻,所以我就把權(quán)值放在一個字符串常量數(shù)組里面灾而,這樣就可以直接通過對應(yīng)的index獲取。
為了避免ascii的轉(zhuǎn)換深胳,所以就直接使用了String類绰疤。。舞终。 效率方面其實我是不太知道影響程度轻庆。。但是我感覺用java就是方便就好
其實難度沒什么敛劝,只有一個地方要注意要檢查前17位是否都為數(shù)字余爆,我一直都忽略了這點。夸盟。然后就比較尷尬了蛾方。所以最后用一個try{}catch()去捕獲掉這樣就可以通過檢測了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上陕,一起剝皮案震驚了整個濱河市桩砰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌释簿,老刑警劉巖亚隅,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異庶溶,居然都是意外死亡煮纵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門偏螺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來行疏,“玉大人,你說我怎么就攤上這事套像∧鹆” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵凉夯,是天一觀的道長货葬。 經(jīng)常有香客問我,道長劲够,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任休傍,我火速辦了婚禮征绎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己人柿,他們只是感情好柴墩,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凫岖,像睡著了一般江咳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哥放,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天歼指,我揣著相機與錄音,去河邊找鬼甥雕。 笑死踩身,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的社露。 我是一名探鬼主播挟阻,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峭弟!你這毒婦竟也來了附鸽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤瞒瘸,失蹤者是張志新(化名)和其女友劉穎坷备,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挨务,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡击你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谎柄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丁侄。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖朝巫,靈堂內(nèi)的尸體忽然破棺而出鸿摇,到底是詐尸還是另有隱情,我是刑警寧澤劈猿,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布拙吉,位于F島的核電站,受9級特大地震影響揪荣,放射性物質(zhì)發(fā)生泄漏筷黔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一仗颈、第九天 我趴在偏房一處隱蔽的房頂上張望佛舱。 院中可真熱鬧,春花似錦、人聲如沸请祖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肆捕。三九已至刷晋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慎陵,已是汗流浹背眼虱。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荆姆,地道東北人蒙幻。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像胆筒,于是被迫代替她去往敵國和親邮破。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 7-1 求整數(shù)均值 (5分) 本題要求編寫程序仆救,計算4個整數(shù)的和與平均值抒和。題目保證輸入與輸出均在整型范圍內(nèi)。輸入格...
    往sir_b2a2閱讀 3,381評論 0 0
  • 題目 鏈接:PAT (Basic Level) Practice 1031 查驗身份證 一個合法的身份證號碼由17...
    dk_qi閱讀 1,252評論 0 2
  • 傳送門 https://pintia.cn/problem-sets/994805260223102976/pro...
    Rush的博客閱讀 1,264評論 0 1
  • 下午打開電腦彤蔽,無意間看到了新劇推薦摧莽,看主演有老戲骨陳寶國、凍齡女神許晴顿痪、童年陰影馮遠(yuǎn)征等镊辕,就想點開看看。 劇情介紹...
    溫馨家園Vera閱讀 1,748評論 5 6
  • 又是凌晨 不知已經(jīng)是多少個輾轉(zhuǎn)難眠的夜晚 只能用毫無邏輯的文字表達(dá)蚁袭,僅當(dāng)做是對自己的一次思考征懈。 今天聽聞很好的一個...
    我有一條小花狗閱讀 208評論 0 0