黑马程序员技术交流社区

标题: 每天一题坚持一个月....之六 [打印本页]

作者: 刘胜寒    时间: 2013-4-13 12:39
标题: 每天一题坚持一个月....之六
本帖最后由 刘胜寒 于 2013-4-14 09:11 编辑

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为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号码的格式要求)。

输出

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

样例输入

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

Right
0-670-82162-4


这一题我决定了 不写答案了...



每天一题坚持一个月....之五http://bbs.itheima.com/thread-45288-1-1.html
每天一题坚持一个月....之四
http://bbs.itheima.com/thread-45153-1-1.html
每天一题坚持一月....之三
http://bbs.itheima.com/thread-44986-1-1.html
每天一题坚持一个月....之二
http://bbs.itheima.com/thread-44819-1-1.html
每天一题坚持一个月....之一
http://bbs.itheima.com/thread-44753-1-1.html





作者: 邵震    时间: 2013-4-13 12:45
顶完就跑  回去继续做题 你这个太难了 以后做
作者: 。。。。。。    时间: 2013-4-13 12:51
看起来好复杂的样子
作者: 张旺达    时间: 2013-4-13 14:24
先留着。。
作者: 王薪婷    时间: 2013-4-13 18:50
package mytest1;
import java.io.*;
class  MyTest1
{
        public static void main(String[] args)throws IOException
        {
                //System.out.println("Hello World!");
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                String input=null;
                while((input=br.readLine())!=null)
                {
                        getBiaoZhi(input);
                }
        }
        public static void getBiaoZhi(String input)
        {
                int sum=0;
                String[] arr=input.split("-");
                //额这里偷点懒,那个因为题目说有三个“-”那这个arr的长度就是为四的,我就不用arr.length了
               
                String b=arr[0]+arr[1]+arr[2]+arr[3];
                System.out.println(b);
               
                byte[] brr=b.getBytes();
                //System.out.println(brr);
                for(int x=0;x<brr.length-1;x++)
                {
                        //System.out.println(brr[x]);
                        sum=sum+((brr[x]-'0')*(x+1));
                }
                //System.out.println(sum);
               
                if((sum%11)==brr[brr.length-1])
                        System.out.println("Rright");
                else
                        System.out.println(sum%11);
               
        }
}

}LDZ15634_1JD7{~~R~@8K5.jpg (13.06 KB, 下载次数: 14)

}LDZ15634_1JD7{~~R~@8K5.jpg

作者: 刘胜寒    时间: 2013-4-14 09:10
话说在没人回答...我就关闭了....
话说这个谢达
怎么木有回帖.....





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2