2017年11月27日21:38:11,追猎场。

2017年11月27日21:47:32 11 2,194 views

今日晚8点,在看着猎场正起劲的时候,我赶紧关掉网页,把我改做的事情做了,说好今天8点开始总结今日的学习。

一入猎场终迷狂,除了早上在高集中的学习外,下午1点开始看猎场一直看到4点才开始学习,然后晚上7点到8点又是一场猎场。8点钟到现在就是下面的写写写。我的思维是早点看完早点学习,看完了眼不见心不烦的才能静下心。唉!着实的是走火入魔。

Integer类

String toString()
返回一个表示该 Integer 值的 String 对象。
static String toString(int i)
返回一个表示指定整数的 String 对象。
static String toString(int i, int radix)
返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保存指定的 String 的值的 Integer 对象。
static Integer valueOf(String s, int radix)
返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
static int parseInt(String s)
将字符串参数作为有符号的十进制整数进行解析。
static int parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

了解上面方法后下面的题就好AC了。

Acm题

2进制转化为3进制

描述

输入一个2进制的数,要求输出该2进制数的3进制表示。
在3进制的表示中,只有0,1,2三种符号

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字
符串长度至少是1,至多是64

输出

n行,每行输出对应一个输入。

样例输入

2

10110

1011

样例输出

211

102

题解:

在Java当中,不需要手动去写进制的转换,可以直接用到integer类的方法。我的思路是,我们接收的是2进制,需要转换成3进制。然而没有更好的方式去存取2进制,我用的是int类,用int接受的数字看着是2进制,其实它还是一个10进制。所有需要找个办法,把我输入的2进制转成便于读的10进制,需要用到的时候再把这个10进制转成相应需要进制即可。

以下是java代码的实现:

2017年11月27日21:38:11,追猎场。

运行结果:

2017年11月27日21:38:11,追猎场。

有多少位不同

描述

给定两个十进制正整数A和B,请计算出A和B用二进制表示时有多少位是不同的。
例如,“3”的二进制表示为“11”,“9”的二进制表示为“1001”,“11”不足4位,不足部分实际上为0,即“0011”,因此二者从右至左第2、4位不同,所以3和9用二进制表示时有两位不同。

输入

输入包括两行,第1行是一个整数n,表示有n组测试数据。紧接着n行,每行包括两个十进制正整数A和B,A、B之间用空格隔开。

输出

输出有n行,为每组测试数据中A和B用二进制表示时不相同的位数。

样例输入

1

3 9

样例输出

2

最开始写的代码:

2017年11月27日21:38:11,追猎场。

2017年11月27日21:38:11,追猎场。

我这个逻辑是对了的,但是后来不管怎么提交都不能通过。以后研究了其他人的代码,发现逻辑和我一样,我在回来debug了一下,发现了代码的问题,最后改正后,代码通过AC。

此题的二次代码:

2017年11月27日21:38:11,追猎场。

此代码参考网上写的,然后去找了下位运算的资料,这题不算白做,至少让我知道了位运算,以及使用。

第三次的代码:

2017年11月27日21:38:11,追猎场。

此代码基本克隆网上的了。重点研究了下我上图中注释的地方。

此题解法是:

用15和2举例。15的二进制是1111,2的二进制是0010,他们进行异或之后得到的二进制是1101,就是13.这样很明显就知道答案是3了。这个3要怎么让机器去找了而且速度快呢,那么就是会数学运算了。1101 – 1 =1100(ans-1),把减1得到数和自身进行与运算,与运算的性质是同真为真。如果是有1可以减,我们就记一次++。进过三次过后1101的与运算就为0了,而count也++了三次。代码中ans&=(ans-1)就是一个去1的过程,进行了异或运算后得到多少1就一次次的去掉1,去掉一个1就是一次不同。

今日做题才发现还有这样的位运算符,先了解了位运算才能解开上面的题。

与(&)、非(~)、或(|)、异或(^)

  1. 与运算符
    与运算符用符号“&”表示,其使用规律如下:
    两个操作数中位都为1,结果才为1,否则结果为0,用高中的与来记,同真为真。

例如下面的程序段。
2017年11月27日21:38:11,追猎场。
运行结果
a 和b 与的结果是:128
下面分析这个程序:
“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。

或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。
2017年11月27日21:38:11,追猎场。 运运行结果
8的二进制:1000

a 非的结果是:-9:-1001

2的二进制:10

b 非的结果是:-3:-11

  1. 下面分析这个程序段:
    a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,根据或运算符的运算规律,只有两个位有一个是1,结果才是1,可以知道结果就是10000001,即129。

3.非运算符
非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
2017年11月27日21:38:11,追猎场。

  1. 异或运算符
    异或运算符是用符号“^”表示的,其运算规律是:
    两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
    2017年11月27日21:38:11,追猎场。
    运行结果
    a 与 b 异或的结果是:13
    分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

Acm题:

整数奇偶排序

描述

输入10个整数,彼此以空格分隔
重新排序以后输出(也按空格分隔),要求:
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。

输入

任意排序的10个整数(0~100),彼此以空格分隔

输出

按照要求排序后输出,由空格分隔

样例输入

4 7 3 13 11 12 0 47 34 98

样例输出

47 13 11 7 3 0 4 12 34 98

我的解题方法:

这就是一个数组排序问题,我好好研究就一个数组就能搞定,先把数组进行排序。奇数要从大到小输出,我就反着去判断并输出。偶数相反。此题就这样解。

但是信心满满的去提交,得到答案错误,不管怎么写就是无法通过提交,最后发现oj出题规律。我这道题的代码是错在没有持续输入上,我在网上找了一个C语言的代码,通过了,仔细研究了下发现的问题。

Java实现:

第一次写的代码修改后:

2017年11月27日21:38:11,追猎场。

修改后能提交

第二次的代码:

2017年11月27日21:38:11,追猎场。

Acm题:

兔子产子

描述

从前有一对长寿兔子,它们每一个月生一对兔子,新生的小兔子两个月就长大了,在第二个月的月底开始生它们的下一代小兔子,这样一代一代生下去,求解兔子增长数量的数列。

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)

输出

输出有1行,每行输出对应一个输入。输出应是一个正整数序列,整数之间用空格分开。

样例输入

3

3

2

1

样例输出

1 1 2

1 1

1

::此题算是一个经典题了,在java经典50道题中第一道就是这个题,不过是要求不一样,这个题对于我来说考虑的就输出问题,怎么一他要求的输出格式去输出。

解题思路:

一张草稿纸,写出5天的兔子。

1天:1对

2天:1对

3天:2对

4天:3对

5天:5对

由此直接发现归路,从第三天起,兔子的数量就是前两天的兔子数量的和。

Java实现:

2017年11月27日21:38:11,追猎场。

历史上的今天:


欢迎来到菜鸟头头的个人博客
本文章百度已收录,若发现本站有任何侵犯您利益的内容,请及时邮件或留言联系,我会第一时间删除所有相关内容。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:11   其中:访客  6   博主  5

    • avatar wu先生 1

      猎场我也看完了。 :razz:

      • avatar 姜辰 4

        技术男!

          • avatar 头头 Admin

            @姜辰 条件所致,我内心是文艺的。

          • avatar 重庆学历提升 0

            猎头是很好看,我也看了好久!不过博主技术也不赖!

            • avatar 重庆SEO 0

              重庆的技术男博主,感觉你的生活很规范

              • avatar 矫平机 0

                我也在追猎场

                • avatar 绿软库 1

                  一般都是看港剧