Java小白入门200例14之求最大公约数
Posted 编程界明世隐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例14之求最大公约数相关的知识,希望对你有一定的参考价值。
作者简介
作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!
引言
很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!
导航
✪ Java小白入门200例系列目录索引
◄上一篇 13.循环打印英文字母
►下一篇 15.求最小公倍数
定义
最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。
方案1
采用 for 循环,从最小公约数开始,直到最大。
package demo.demo14;
public class Test1 {
public static void main(String[] args) {
int a=60,b=-40;
// 先获得绝对值,保证负数也可以求
a = Math.abs(a);
b = Math.abs(b);
//判断比较出a和b的最小值
int min=0;
if(a>b){
min = b;
}else{
min = a;
}
int gys = 0;
// 从 1 开始
for (int i = 1; i <= min; i++) {
// 如果 i 能被两个数同时约分,则是它们的公约数,但不一定是最大的
if (a % i == 0 && b % i == 0) {
//从最小的公约数,一直到最大的公约数
gys = i;
}
}
System.out.println("最大公约数"+gys);
}
}
运行结果:
方案2
采用 while 循环,从最小公约数开始,直到最大。
package demo.demo14;
public class Test2 {
public static void main(String[] args) {
int a=60,b=-40;
// 先获得绝对值,保证负数也可以求
a = Math.abs(a);
b = Math.abs(b);
//判断比较出a和b的最小值
int min=0;
if(a>b){
min = b;
}else{
min = a;
}
int gys = 0;
//从2开始
int temp=2;
while(temp<=min){
//从最小的公约数,一直到最大的公约数
if (a % temp == 0 && b % temp == 0) {
gys = temp;
}
//每次执行让temp++
temp++;
}
System.out.println("最大公约数"+gys);
}
}
方案3
采用 for 循环,从最小值min开始,取到最大公约数开就行。
package demo.demo14;
public class Test3 {
public static void main(String[] args) {
int a=60,b=-40;
// 先获得绝对值,保证负数也可以求
a = Math.abs(a);
b = Math.abs(b);
//判断比较出a和b的最小值
int min=0;
if(a>b){
min = b;
}else{
min = a;
}
int gys = 0;
//从min开始,递减
for (int i = min; i >=1; i--) {
// 如果 i 能被两个数同时约分,则是它们的公约数
if (a % i == 0 && b % i == 0) {
gys = i;
//最大的公约数,直接退出
break;
}
}
System.out.println("最大公约数"+gys);
}
}
方案4
采用 while 循环,从最小值min开始,取到最大公约数开就行。
package demo.demo14;
public class Test4 {
public static void main(String[] args) {
int a=60,b=-40;
// 先获得绝对值,保证负数也可以求
a = Math.abs(a);
b = Math.abs(b);
//判断比较出a和b的最小值
int min=0;
if(a>b){
min = b;
}else{
min = a;
}
int gys = 0;
//从min开始
int temp=min;
while(min>1){
//一旦取到就是最大公约数
if (a % temp == 0 && b % temp == 0) {
gys = temp;
break;
}
//每次执行让temp--
temp--;
}
System.out.println("最大公约数"+gys);
}
}
我这里采用的是简单穷举法,还有什么 质因数分解法、短除法 等就不说了,因为我也不会。
小结
这节总结了“求最大公约数”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。
评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!
导航
✪ Java小白入门200例系列目录索引
◄上一篇 13.循环打印英文字母
►下一篇 15.求最小公倍数
热门专栏推荐
1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java
另外
为了帮助更多小白从零进阶Java工程师,从CSDN官方那边搞来了一套 《Java 工程师学习成长知识图谱》,尺寸 870mm x 560mm,展开后有一张办公桌大小,也可以折叠成一本书的尺寸,原件129元现价 29 元,先到先得,有兴趣的小伙伴可以了解一下!
以上是关于Java小白入门200例14之求最大公约数的主要内容,如果未能解决你的问题,请参考以下文章