Java刷题笔记
花了点时间用 Java 刷了刷欧拉计划的题,发现题目还是很简单的,算法思想很少,但由于之前都没用 Java 刷过,所以某些函数的使用,以及大数运算的处理并不到位,所以在做的过程中学习了,一下并且做了这篇笔记。
以下是欧拉计划的中译站点 Project Euler | 欧拉计划 (pe-cn.github.io)
解题模板
1 | package Week_1; |
以上就是一个简单的 Java 解题模板,其大致结构如下:
- 一个 main 函数用于启动程序,并打印答案
- 一个 run 函数用于返回结果
- 零个或多个 st 函数用于处理题目中各个模块的逻辑
大数处理
基本类型的取值范围
在介绍大数运算之前我们先回顾一下 int
(Integer) long
(Long) double
(Double) 的取值范围
int
(Integer): -2147483648 ~ -2147483648long
(Long): 9223372036854775807L ~ 9223372036854775808Ldouble
(Double): 1.7976931348623157e+308 ~ 4.9e-324
当然忘记了也没关系,我们可以通过它们各自包装类的 MAX_VALUE 属性来进行查看
大数处理的使用情况
大数处理的题常常是以字符串的形式出现的。这时候情况就有以下几种(我目前接触到的)
- 多个大数之间的运算 —> 用字符数组处理
- 一个大数进行多次运算 —> 用
BigInteger
/BigDecimal
进行处理,它们都是 Java 内置类 Math 下的方法
技巧
单个 char
数字转 int
数字的技巧:’9’-‘0’ = 9
待更新…
Comments
Comment plugin failed to load
Loading comment plugin