你的位置:首页 > Java教程

[Java教程]欧拉计划15

欧拉计划11-15题 - wuyudong - 博客园

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08...« 上一篇: 欧拉计划6-10题 » 下一篇: C语言预处理命令之条件编译 posted...

欧拉计划 第十五题 - qq_的博客 - CSDN博客

欧拉计划 第十五题 2018年07月08日 10:46:48 韩韩韩韩韩美丽 阅读数:45 Starting in the top left corner of a 2×2 grid, and only being able to mo...

Python3 欧拉计划 问题11-15 - 简书

Python3 欧拉计划 问题11-15AiFany 2017.11.19 11:46* 字数1048 EulerProject.png 问题6-10参见:.jianshu./p/6a8236cf7751 11、数字方阵中...

欧拉计划15-从20*20的网格的左上角通往右下角有多少条..._CSDN博客

欧拉计划15-从20*20的网格的左上角通往右下角有多少条路?2019年03月20日 09:54:43 Zz一只甜鱼 阅读数:4 标签: 欧拉计划 题目: 从一个 2×2 网格的左...

用欧拉计划学Rust语言(第7~12题) - 申龙斌的程序人生 - 博客园

申龙斌的程序人生 关注- 28 粉丝- 474 推荐博客 +加关注 0 0 « 上一篇: 通过欧拉计划学Rust(第1~6题) posted on 2019-08-30 15:24 申龙斌的程序...

欧拉计划第3题matlab代码 免费开源代码 开发,分享 - CodeForge.

欧拉计划第3题matlab代码 (1.15 kB) 需要 1 积分 您持有 积分 CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上...

欧拉计划的Python解法(11-13) - PlutonJi的个人空间 - OSCHINA

#!/usr/bin/env python import re agrid = #39;#39;#39;08 02 22 97 38 15 00...上一篇: 欧拉计划的Python解法(14-) 下一篇: 欧拉计划的Python解法(1-10) ...

Python3 欧拉计划 问题96-100 - 简书

  一个盒子中装有21个彩色碟子,其中15个是蓝的,6个是红的。如果随机地...Python3 欧拉计划 问题46-50 46、哥德巴赫的另一个猜想   哥德巴赫曾...

多分派-北城百科网

欧拉计划(Project Euler)网站类型解题类网站创始人Colin Hughes网... 番茄工作法...15Descript.ion 16匈牙利命名法 17基于原型的编程 18算法与数据...

欧拉计划596题:超级球的格点数-图灵社区

PE c++ 算法 数学 欧拉计划 本文仅用于学习和交流目的,不代表图灵社区观点。...黄志斌 发表于 2017-06-15 15:47:14 推荐 这个C 语言程序(把 _ 替换...

笔加索(C网)ABC计划 - miqis的博客 - CSDN博客

笔加索C计划将于4月15日全新上线,原注册及邀请奖励将于15日做调整现将具体细节...欧拉计划 60 - chenwr_727的博客 01-07 519 质数3, 7, 109, 和 673...

C++--ACM之杭电OJ--2136 Largest Prime factor - Willi..._CSDN博客

欧拉计划---0003 Largest prime factor(找出一个合数的最大质数因子) 02-07...排名: 15万+ 勋章: 持之以恒 授予每个自然月内发布4篇或4篇以上原创...

通过欧拉计划学习Rust编程(第22~25题) - 申龙斌的程序人生 - 博客园

申龙斌的程序人生 关注- 28 粉丝- 474 推荐博客 +加关注 0 0 « 上一篇: 用欧拉计划学Rust语言(第17~21题) posted on 2019-09-01 22:15 申龙斌的...

What Is Evidence 3 - weixin_的博客 - CSDN博客

Java 和 Android Studio环境搭建【简单上手】 - noblem..._CSDN博客

欧拉计划之题目1:找出1000以下自然数中3和5的倍数之和。 ..._博客园

欧拉计划之题目1:找出1000以下自然数中3和5的倍数之和。本题来自欧拉计划:http...2.1000以内5的倍数:5+10+15+...+995=5*(1+199)*199/2; 3.1000以内15...

数论概论读书笔记 15.梅森素数与完全数 - Feynman1999..._CSDN博客

自然要问的是,由15.1给出的求解完全数公式的方法,是否能表示所有完全数呢? 2000年后的欧拉给出了一个定理: 15.2 欧拉完全数定理:如果n是偶完全数,则一...

Problem 15 Lattice paths (组合数学) - 咸鱼 - CSDN博客

题目链接:https://projecteuler./problem=15组合数学,答案就是C(40,20),因为...Python实现欧拉计划23题 - qq_的博客 05-13 295 def d(i)...深圳较场尾游跟团深圳较场尾游跟团深圳较场尾游跟团深圳较场尾游跟团多少钱深圳较场尾游跟团多少钱深圳较场尾游跟团多少钱北京出发去塞浦路斯旅游 北京出发去塞浦路斯旅游 北京出发去塞浦路斯旅游 北京出发去塞浦路斯旅游 北京出发去塞浦路斯旅游 北京出发去塞浦路斯旅游 北京出发去塞舌尔旅游 北京出发去塞舌尔旅游 北京出发去塞舌尔旅游 北京出发去塞舌尔旅游 北京出发去塞舌尔旅游 北京出发去塞舌尔旅游 北京出发去三都岛旅游 北京出发去三都岛旅游 北京出发去三都岛旅游 北京出发去三都岛旅游 北京出发去三都岛旅游 北京出发去三都岛旅游 北京出发去沙特阿拉伯旅游 北京出发去沙特阿拉伯旅游 北京出发去沙特阿拉伯旅游 北京出发去沙特阿拉伯旅游 北京出发去沙特阿拉伯旅游 北京出发去沙特阿拉伯旅游

网格路径

从一个2×2方阵的左上角出发,只允许向右或向下移动,则恰好有6条通往右下角的路径。对于20×20方阵来说,这样的路径有多少条?

 

 

思路:
  在2*2宫格中,无论哪种走法,一共都要走四步,向右走两步,向下走两步;
  在20*20宫格中,无论哪种走法,一共都要走40步,向右走20步,向下走20步;
  所以就变成了排列问题C42 = 4!/(2! * 2!);
  Cmn = m!/(n! * (m - n)!);

 

具体代码:

 

知识点总结:

  BigDecimal:

 

    定义:
      BigDecimal a=new BigDecimal(String; val)
      BigDecimal a=new BigDecimal(double val);
    转换:
      1)定义中就可以将String型和double 型的转换为BigDecimal型
      2)Int,float, double, long转换为BigDecimal
        a.floatValue();
        a.doubleValue();
        a.longValue();
        a.intValue();
      3) BigDecimal a转换为String(其它的类型转换为String都通用以下方法)
        toString();
        String.valueOf(a);
        比较(比较的数BigDecimal a)
        1)Int num=a.compareTo(BigDecimal anotherBigDecimal);
        当此BigDecimal在数字上小于、等于或大于 val 时,返回 -1、0 或 1。
        BigDecimal取其中最大、最小值、绝对值、相反数:
        a.max (b) //比较取最大值
        a.min(b) //比较取最小值
        a.abs()//取最绝对值
        a.negate()//取相反数
      计算:
        加: a.add(b);
        减: a.subtract(b);
        乘: a.multiply(b);
        除: a.divide(b,2);//2为精度取值
        int 、long、double、 float的取绝对值和同类型间比较大小都可用以下Math方法:
        Math.max(a,b);//比较取最大值
        Math.min(a,b);//比较取最小值
        Math.abs(a); //取最绝对值
     
   

BigDecimal 原文:https://blog.csdn.net/liucheng417/article/details/50825047

 

 RoundingMode 介绍

package java.math;public enum RoundingMode {    UP(BigDecimal.ROUND_UP),    DOWN(BigDecimal.ROUND_DOWN),    CEILING(BigDecimal.ROUND_CEILING),    FLOOR(BigDecimal.ROUND_FLOOR),    HALF_UP(BigDecimal.ROUND_HALF_UP),    HALF_DOWN(BigDecimal.ROUND_HALF_DOWN),    HALF_EVEN(BigDecimal.ROUND_HALF_EVEN),    UNNECESSARY(BigDecimal.ROUND_UNNECESSARY);    final int oldMode;    private RoundingMode(int oldMode) {        this.oldMode = oldMode;    }    public static RoundingMode valueOf(int rm) {        switch(rm) {        case BigDecimal.ROUND_UP:            return UP;        case BigDecimal.ROUND_DOWN:            return DOWN;        case BigDecimal.ROUND_CEILING:            return CEILING;        case BigDecimal.ROUND_FLOOR:            return FLOOR;        case BigDecimal.ROUND_HALF_UP:            return HALF_UP;        case BigDecimal.ROUND_HALF_DOWN:            return HALF_DOWN;        case BigDecimal.ROUND_HALF_EVEN:            return HALF_EVEN;        case BigDecimal.ROUND_UNNECESSARY:            return UNNECESSARY;        default:            throw new IllegalArgumentException("argument out of range");        }    }}

 

 


















































RoundingMode是一个枚举类,有以下几个值:UP,DOWN,CEILING,FLOOR,HALF_UP,HALF_DOWN,HALF_EVEN,UNNECESSARY

2 舍入模式

2.1  UP

public final static int ROUND_UP = 0;

 

 

 

定义:远离零方向舍入。

解释:始终对非零舍弃部分前面的数字加 1。注意,此舍入模式始终不会减少计算值的绝对值。

图示:

示例:

输入数字使用 UP 舍入模式将输入数字舍入为一位数
5.56
2.53
1.62
1.12
1.01
-1.0-1
-1.1-2
-1.6-2
-2.5-3
-5.5-6

 

 

 

 

 

 

 

 

 

 

2.2  DOWN

  

public final static int ROUND_DOWN = 1;
 

 

定义:向零方向舍入。

解释:从不对舍弃部分前面的数字加 1(即截尾)。注意,此舍入模式始终不会增加计算值的绝对值。

图示:

示例:

 

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.55
2.52
1.61
1.11
1.01
-1.0-1
-1.1-1
-1.6-1
-2.5-2
-5.5-5

 

 

 

 

 

 

 

 

 

2.3 CEILING

public final static int ROUND_CEILING = 2;

 

定义:向正无限大方向舍入。

解释:如果结果为正,则舍入行为类似于 RoundingMode.UP;如果结果为负,则舍入行为类似于RoundingMode.DOWN。注意,此舍入模式始终不会减少计算值。

图示:

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.56
2.53
1.62
1.12
1.01
-1.0-1
-1.1-1
-1.6-1
-2.5-2
-5.5-5

 

 

 

 

 

 

 

 

 

 

2.4 FLOOR

public final static int ROUND_FLOOR = 3;

 

 

定义:向负无限大方向舍入。

解释:如果结果为正,则舍入行为类似于 RoundingMode.DOWN;如果结果为负,则舍入行为类似于RoundingMode.UP。注意,此舍入模式始终不会增加计算值。

图示:

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.55
2.52
1.61
1.11
1.01
-1.0-1
-1.1-2
-1.6-2
-2.5-3
-5.5-6

 

 

 

 

 

 

 

 

 

 

2.5 HALF_UP (Half指的中点值,例如0.5、0.05,0.15等等)

public final static int ROUND_HALF_UP = 4;

 

 

定义:向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向上舍入。

解释:如果被舍弃部分 >= 0.5,则舍入行为同 RoundingMode.UP;否则舍入行为同RoundingMode.DOWN。注意,此舍入模式就是通常学校里讲的四舍五入。

图示:

 

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.56
2.53
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-3
-5.5-6

 

 

 

 

 

 

 

 

 

2.6 HALF_DOWN

public final static int ROUND_HALF_DOWN = 5;

 

定义:向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向下舍入。

解释:如果被舍弃部分 > 0.5,则舍入行为同 RoundingMode.UP;否则舍入行为同RoundingMode.DOWN。注意,此舍入模式就是通常讲的五舍六入。

图示:

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.55
2.52
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-2
-5.5-5

 

 

 

 

 

 

 

 

 

2.7 HALF_EVEN

public final static int ROUND_HALF_EVEN = 6;

 

 

定义:向最接近数字方向舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。

解释:如果舍弃部分左边的数字为奇数,则舍入行为同 RoundingMode.HALF_UP;如果为偶数,则舍入行为同RoundingMode.HALF_DOWN。

注意,在重复进行一系列计算时,根据统计学,此舍入模式可以在统计上将累加错误减到最小。此舍入模式也称为“银行家舍入法”,主要在美国使用。此舍入模式类似于 Java 中对float 和double 算法使用的舍入策略。

图示:

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.56
2.52
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-2
-5.5-6

 

 

 

 

 

 

 

 

 

2.8 UNNECESSARY

public final static int ROUND_UNNECESSARY =  7;

 

 

定义:用于断言请求的操作具有精确结果,因此不发生舍入。

解释:计算结果是精确的,不需要舍入,否则抛出 ArithmeticException。

示例:

输入数字使用 DOWN 舍入模式将输入数字舍入为一位数
5.5抛出 ArithmeticException
2.5抛出 ArithmeticException
1.6抛出 ArithmeticException
1.1抛出 ArithmeticException
1.01
-1.0-1
-1.1抛出 ArithmeticException
-1.6抛出 ArithmeticException
-2.5抛出 ArithmeticException
-5.5抛出 ArithmeticException