第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模)

简介: 第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模)

第十四届蓝桥杯集训——JavaC组第五篇——四则运算/(求余/取模)


四则运算

大家都知道,四则运算也就是【+-*/】在计算机中使用这几个符号来代表,但是很多时候计算还会用到(),括号是优先级最高的符号,就跟先算乘除后算加减一样。只要带()的内容肯定是最先运算的。我们在这个规律下才能正确的计算四则运算。

基础运算:

我们根据括号来进行先行计算的,谁被括号括着就先计算谁,下面就是一个示例:

package com.item.action;
public class Action {
  public static void main(String[] args) {
    int result1=5+6*2;
    int result2=(5+6)*2;
    System.out.println("5+6*2="+result1);
    System.out.println("(5+6)*2="+result2);
  }
}

输出结果:

5+6*2=17

(5+6)*2=22

符号优先级

运算符

结合性

[ ] . ( ) (方法调用)

从左向右

! ~ ++ -- +(一元运算) -(一元运算)

从右向左

* / %

从左向右

+ -

从左向右

> >>>

从左向右

< >=

从左向右

== !=

从左向右

&

从左向右

^

从左向右

|

从左向右

&&

从左向右

||

从左向右

?:

从右向左

=

从右向左

计算示例:

package com.item.action;
public class Action {
  public static void main(String[] args) {
    //计算四则运算
    int result=(5+6-(7+8))*9/10;
    System.out.println(result);
  }
}

自增自减

下面这个示例就很好的解释了自增自减:

package com.item.action;
public class Action {
  public static void main(String[] args) {
    int i=0;
    int n=i++;//先赋值后+1
    System.out.println(n);
    int j=0;
    int m=--j;//先-1再赋值
    System.out.println(m);
  }
}

头脑风暴

单单说自增自减很简单,但是做以下的批量化计算呢。并且恶心到【---】三个减号在一起,试试,你还能理解吗?

package com.item.action;
public class Action {
  public static void main(String[] args) {
    //头脑风暴
    int i=0;
    i++;//1
    System.out.println(i);
    i=++i+2;//4
    System.out.println(i);
    i=--i-1;//2
    System.out.println(i);
    i=i---1;//1
    System.out.println(i);
  }
}

头脑风暴解析:

package com.item.action;
public class Action {
  public static void main(String[] args) {
    //头脑风暴
    int i=0;
    i++;//自身+1,默认赋值
    System.out.println(i);
    i=++i+2;//先+1在+2,相当于i=1+1+2
    System.out.println(i);
    i=--i-1;//先在4的基础上-1,在-1,i=4-1-1
    System.out.println(i);
    i=i---1;//先在2的基础上-1,然后赋值,赋值后再减一,故而不做计算
    System.out.println(i);//最终属于是的2-1=1
  }
}

异常处理

任何数乘以0结果都是0,但是任何数除以0都是无法计算的,我们看一下这个异常:

我们在计算的过程中一定要排出这种情况,因为如果出现了异常就无法进行后续的计算了,因为程序已经【崩溃】停止了。

取模运算%

取模运算也可称称为求余计算。

例如:

10 / 3 = 3 余 1

我们要进行取模运算,实际上获取的是1,也就是余数。

我们可以利用这个方式做一些特殊的运算。

例题:

拆分整数【12345】,并将各个位置上的数字相加,输出最后的结果。

package com.item.action;
public class demo1 {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int nums=12345;
    int ge=nums%10;
    int shi=nums/10%10;
    int bai=nums/100%10;
    int qian=nums/1000%10;
    int wan=nums/10000;
    int sum=ge+shi+bai+qian+wan;
    System.out.println(sum);
  }
}

结果:

基础概念

取模运算(“Modulo Operation”)和取余运算(“Remainder Operation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。

模运算在数论和程序设计中都有着广泛的应用,奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。

奇偶数

如果%2输出0,就是偶数,输出1就是奇数

package com.item.action;
public class demo1 {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int num=5;
    //如果%2输出0,就是偶数,输出1就是奇数
    System.out.println(num%2);
  }
}
相关文章
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
109 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
82 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
83 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
89 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
62 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
66 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
90 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
92 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
65 0
|
6月前
|
移动开发 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-998 娜神平衡
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-998 娜神平衡
59 0