华为上机题整理1——Java实现

      最近开始练习华为的上机题,发现网上有些代码运行时不是很符合题目要求,故加以整理,用测试用例亲测通过~

     本文是在原有代码上改进,所以,首先要感谢原作者,原文链接

                                                                   http://blog.csdn.net/dengpeng0419/article/details/47622727

                                                                   http://blog.csdn.net/dengpeng0419/article/details/47622727

下面进入正题:


1.超长整数相加


java代码:


代码解析:

   一定要注意,题目是“超长整数”,意味着读入的是字符串,而不是整数,所以,不能用下面的代码来读取键盘输入,


否则会报错误:


当然,一般整数的输入,这样读取ok


归纳总结:

    初看题目,第一反应是可以用“大数值”来做,直接调用


觉得很easy,但别忘了,人家叫你用算法实现。考的还是字符串类的基础知识!


2.城市电话号码


java代码:


      

代码解析:

   一定要注意,在第一步对所有位数的判断,是所有3个中有一个位数不正确,都判定为非法,但第一个允许两种情况(0或3),这时就需要()把第一个与其他两个区别开来,不然,得不到正确的判定 结果。

    再者,在写判定条件时:


有相当大差别,在逻辑上也是不对的。

归纳总结:

    操作字符串的基础知识,注意抓题眼,同时,测试用例要多试试题目没给出来的。


3.最小长方形

 

java代码:

     

这段代码与原文没多大差别,仅记录自己的学习过程

代码解析:

   一定要注意,调用Math.max(a,b);Math.min(a,b)比较大小时,初值为:


这样,才能得到正确的比较结果,不要搞反了

归纳总结:

    对java内置的一些函数要熟悉,只要不是写算法,必要时可直接调用


后面的会依次整理,督促自己,好好复习,奋斗!!!!




©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页