MyJavaProblems

来源:互联网 发布:卫生间js防水施工方案 编辑:程序博客网 时间:2024/06/12 20:51

Java问题总结


在有段时间没有写代码,碰到一些简单的问题也生疏了,现在记下来。\n(应该用<br>)

java基本数据类型及其初始值

    基本数据类型
    字节数
    初始值
取值范围 byte 1 0 -128~127 short 2 0 -32768~32767(-2^15~2^15-1) int 4 0 -2147483648~2147483647(-2^31~2^31-1) long 8 0L(记得带l或L,最好是L) -2^63~2^63-1 char 2 0(\u0000 ) \u0000 - u\ffff float 4 0.0F/f -3.40292347E+38-3.40292347E+38 double 8 0.0 -1.79769313486231570E+308-1.79769313486231570E+308 boolean 1 false true、false

求1! +…+100!的问题

做一个小练习,求1!到100!之和。刚看到觉得很简单的问题,两次for循环就可以了,于是有了下面的代码:

/**求1!+2!+...+100!之和*/public class SumTest {    public static void main(String[] args) {        int sum = 0;    //总和        for (int i = 1; i <= 100; i ++) {            int temp = 1;   //临时变量            for (int j = 1; j <= i; j ++) {                temp *= j;            }            sum += temp;        }        System.out.println("总和是:" + sum);    }}

在命令行一运行,结果就悲剧了:

这里写图片描述

总和是:-125961703

然后,明白过来肯定是超出int类型取值范围了。

/**求1!+2!+...+100!之和*/public class SumTest {    public static void main(String[] args) {        long sum = 0L;  //总和        for (int i = 1; i <= 100; i ++) {            long temp = 1L; //临时变量            for (int j = 1; j <= i; j ++) {                temp *= j;            }            sum += temp;        }        System.out.println("总和是:" + sum);    }}
总和是:1005876315485501977

这里写图片描述
这样就可以了.

0 0