java 如何输入保证输出的最小公倍数在int范围内
发布网友
发布时间:2022-05-24 19:54
我来回答
共2个回答
热心网友
时间:2023-10-29 03:53
首先用一个long或者double保存最小公倍数,然后用if检验即可
或者完全可以直接强制类型转换
方法:
public int m1(int a, int b) {
long c = a(a,b);//求得最小公倍数
if(c >= Integer.MAX_VALUE)//检测是否超过了Integer的最大值(2147483647)
return Integer.MAX_VALUE
return (int)c;
}
public int m2(int a, int b) {
long c = a(a,b);//求得最小公倍数
return (int)c;
}
public long a(long a, long b) {
int i = 0;//循环变量
do{
i++;//变量自增
}while((b * i % a) != 0) //当b乘以一个数之后能被a整除,b乘以那个数就是a、b的最小公倍数(听起来有点绕)
return b * i;//返回最小公倍数
}
!即使用if检验过,最后也一定要强制类型转换!
热心网友
时间:2023-10-29 03:54
1000000
2147483647 int的最大值,在计算过程,每次都判断一下