java入门与进阶P-4.7
2024-09-18 14:14:27
最大公约数
首先做这个题需要先复习几组概念:
如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。
几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。
举例:
12,16
12的约数有:1,2, 3, 4, 6, 12
16的约数有:1, 2, 4, 8, 16
故而最大的公约数为4。
求最大公约数有多种方法,常见的有辗转相除法。
1 private static int getMaxCommonDivisor(int a, int b) {
2 // 使a小,b大
3 if(a > b){
4 // 两个数交换
5 a = a + b;
6 b = a - b;
7 a = a - b;
8 }
9 int temp = a;
10 while(temp > 0){
11 if(a % temp == 0 && b % temp == 0){
12 break;
13 }
14 temp--;
15 }
16 return temp;
17 }
观察性质或者案例,我们可以知道最大公约数一定满足(对于数A
和数B
来说,最大公约数C
),A%C=0
且B%C=0
。且最大。
最新文章
- df命令
- 使用django rest framework
- WebAPI的Get和Post访问
- Noip2016提高组 玩具谜题toy
- 第 24 章 CSS3 变形效果[下]
- Oracle中Cursor的用法
- java第一节课
- POJ 1753	Flip Game (高斯消元 枚举自由变元求最小步数)
- Linux 命令 - history: 显示或操作历史列表
- Xcode如何添加字体库--
- 转 Caffe学习系列(9):运行caffe自带的两个简单例子
- linux下JNI开发—Hello为例
- 【FJOI 20170305】省选模拟赛
- C++标准模板库(STL)介绍:string的基本用法
- go语言开发环境、goland、IDE
- libgdx学习记录5——演员Actor
- mysql修改Truncated incorrect DOUBLE value:
- 如何新建一个datatable,并往表里赋值
- java.lang.VerifyError: com/google/android/gms/measurement/internal/zzw
- bzoj 1191 超级英雄Hero