java中的除法运算和取模运算解读
作者:SSS4362
java除法运算和取模运算
A.除法运算
a.含义及其语法
- 除法运算就是被除数除以除数的这一过程
- 语法: 被除数/除数
- 注意:除数不能为0,且被除数和除数都得是数字
b.应用场景
- 1.和取模运算一起求出整型数字的每一位的数字,可以解决水仙花问题
- 2.已知天数,求这是第几周(默认第一天为星期一)
c.怎么使用?
c.1被除数和除数皆为整型数据时
- 如果是整型数据进行除法运算,那么得到的结果就是被除数除以除数的结果,其结果必然是整型数据.
- 如果除不尽,会把得到的小数部分直接抹去,抹去的时候不要考虑四舍五入的规则
示例代码:
public class Test { public static void main(String[] args) { int a=19; int b=2; int c=a/b; System.out.print("c的结果为: "+c); } }
示例代码运行结果
如下图所示:
c.1被除数和除数至少有一个为浮点型数据时
在除法运算中,如果里面有浮点型数据参与的话,那么结果一定会是浮点类型的数据,计算数值的话就按照我们平常小数和整数之间的除法计算去进行计算即可。
结果会保留小数部分.
示例代码如下:
public class Test { public static void main(String[] args) { double a=19; int b=2; double c=a/b; System.out.print("c的结果为: "+c); } }
示例代码运行截图如下所示:
B.取模运算(求余数)
a.含义及其语法
- 取模运算就是被除数除以除数后得到的余数
- 语法: 被除数%除数
- 注意:除数不能为0,且被除数和除数都得是数字
b.应用场景
- 1.和除法运算一起求出整型数字的每一位的数字,可以解决水仙花问题
- 2.已知天数,求此时是星期几(默认第一天为星期一)
c.怎么使用??? c.1取模的核心思路如下所示:
设m为被除数,n为除数
- 1.若m<n,取模运算结果=余数=n;
- 2.若m=n,取模运算结果=余数=0;
- 3.若m>n,取模运算结果=m-n*最多次数;
最多次数就是m能最多减去几个n的次数(这时m不能再减,再减就会小于0了)
c.2 当取模运算两边都是整型数据时
结果=被除数-除数*最多次数,此时结果为整型数据
示例代码:
public class Test { public static void main(String[] args) { int a=19; int b=2; int c=a%b; System.out.print("c的结果为: "+c); } }
示例代码运行截图如下所示:
c.3 取模运算两边至少有一个为浮点型数据时
此时依然还是按照取模的核心思路,该思路不会受到数据类型(整型、浮点型)影响
结果=被除数-除数*最多次数,此时结果要表示为浮点类型的数据
示例代码如下:
public class Test { public static void main(String[] args) { double a=19; int b=2; double c=a%b; System.out.print("c的结果为: "+c); } }
示例代码运行截图
如下所示
:
取模运算 整数除运算 +运算
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
例如:
int x=3510;x=x/1000*1000; x的结果是?3000 因为整数除的时候是被作为一个int类型的数据,3500/1000 = 3
“+”除字符串相加功能外,还能把非字符串转换成字符串.
例如:System.out.println("5+5="+5+5); //打印结果是?
l以下二者的区别:
System.out.println('*' + '\t' +'*'); System.out.println("*" + '\t' +'*');
上面的char会直接计算unicode值。因为char类型数据运算前会转换成int类型进行计算。
for(int i = 100 ; i <= 999 ;i++){ int n1 = i%10; //对10取模得到一个个位数。因为任何一个大于10的数对10取模得到就是个位数。比如34%10 = 4 商为3 余数是4 int n2 = i/10%10; //首先除以10 丢失个位数精度。 int n3 = i/100; //除以100丢失十位数和个位数精度。 if((n1*n1*n1 +n2*n2*n2 +n3*n3*n3) == i){ System.out.println("i = " + i + ", n1 = " + n1 + ", n2 = " + n2 + " , n3 = " +n3); System.out.println(i); } } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。