MyJavaProblems

Java问题总结


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

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

  • 基本数据类型
  • 字节数
  • 初始值
取值范围
byte10-128~127
short20-32768~32767(-2^15~2^15-1)
int40-2147483648~2147483647(-2^31~2^31-1)
long80L(记得带l或L,最好是L)-2^63~2^63-1
char20(\u0000 )\u0000 - u\ffff
float40.0F/f-3.40292347E+38-3.40292347E+38
double80.0-1.79769313486231570E+308-1.79769313486231570E+308
boolean1falsetrue、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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值