三道java初学者习题

来源:互联网 发布:虚拟数据库 编辑:程序博客网 时间:2024/04/30 08:59

1.任写一个五个元素以上的数组,获取数组的最大值
在学习数组的时候,看到的一个习题,当时Lz想的比较简单,就是用if else语句一个一个去比较好咯,于是就出现了如下的代码:

public class Excise {    public static void main(String[] args) {        //任写一个数组,获取数组的最大值        int max;        int [] good = {12,34,56,7,78};        if(good[0] > good[1]) {            max = good[0];        }else{            max = good[1];        }        if(max > good[2]) {            max = max;        }else{            max = good[2];        }        if(max > good[3]) {            max = max;        }else{            max = good[3];        }        if(max > good[4]) {            max = max;        }else{            max = good[4];        }        System.out.println("max:" + max);    }}

**当然,这样写是没有任何问题的,可是,我自己都觉得他真的好啰嗦,要是真的让老子找到100个数中最大的数,真的就写懵逼了,想到C语言的学习中有max函数,eg:max(x,y)即找出x,y中较大的数并返回,于是乎Lz就去书上翻了翻,还真有:像这样的Math.max(x,y)
于是,代码就变成了这样了:**

```public class Excise {    public static void main(String[] args) {        //任写一个数组,获取数组的最大值        int max = 0;        int [] good = {12,34,56,7,78};        for(int i = 0;i < good.length;i ++) {            max = Math.max(max,good[i]);        }        System.out.println("max:" + max);    }}

**哈哈,是不是好很多了。
还可以这样:**

public class Excise {    public static void main(String[] args) {        int max = 0;        int [] good = {12,3,45,15,67,98,222};        for(int i = 0;i < good.length;i ++) {            if(good[i] > max) {                max = good[i];              }        }        System.out.println(max);    }}

2 求出100之内所有偶数的和
这个题貌似没有什么难度的,Lz掐指一算,一个for循环搞定!如下:
public class Excise {
public static void main(String[] args) {
int total = 0;
for(int i = 0;i <= 100;i ++) {
if(i % 2 == 0) {
total += i;

        }    }    System.out.println(total);}

}
3.将数字12345反转为54321
这个题还是需要一定的想法的,我刚开始的想法呢,就是将12345一个个全都提取出来,最后再进行拼接就好了。于是代码是这样的
public class Excise {
public static void main(String[] args) {
int a = 12345;
int g,s,b,q,w;
g = a % 10;
s = (a % 100 - g) / 10;
b = (a % 1000 - s * 10 - g) / 100;
q = (a % 10000 - b * 100 - s * 10 - g) / 1000;
w = a / 10000;
System.out.println(“”+ g + s + b + q + w);
}

}
是不是看起来乱乱的感觉。。。可是Lz的水平真的好像已经到这了,如果给老子个123456789再反转不知道要写多久。。。就想着去网上找找大神的写法,于是就看见了这种:

public class Excise {    public static void main(String[] args) {        int i = 12345;        int backspin = 0;        while(i > 0){            int tmp = i % 10;            backspin = backspin * 10 + tmp;            i = i / 10;        }        System.out.println(backspin);            }}
讲真,看到这样的写法,真的是膜拜的感觉,无论来多少数老子都不怕了。哈哈哈今天又学了一种方法,现在补上去:
    public class Excise {    public static void main(String[] args) {        int i = 123456;        while(i > 0) {            System.out.print(i % 10);            i = i / 10;        }}}

我坚信,代码是会越写越好的!

0 0
原创粉丝点击