【数学转编程】求出最大公约数的实现即思路分析====>最大公约数
自然语言描述问题
公约数
公约数,亦称“公因数”。它是指能同时整除几个整数的数 。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。
问题描述
计算两个非负整数a和b的最大公约数:
若b为0,则最大公约数为a。否则,将a除以b得到余数r,a和b的最大公约数即为b和r的最大公约数。
数学描述
编程
递归编程及其思路
使用递归进行编程
- 判断b是否是0如果是零了最大公约数就是a(也就是如果a是b的倍数举个例子如[16与0],[20与0],[11与0]那么8、10、11就分别是这几个数的最大公约数)
- 如果不是就用a除以b获得r,那么a,b最大公约数就是b,r的最大公约数
- 把b当成a,r当成b继续第一个步骤。
代码
public static int gcd(int a, int b){if(b==0) return a;int r = a%b;return gcd(b,r);
}
举个例子执行这串代码:a=16 , b=10;
第一次执行 16%10 = 6; b=10 , r = 6 将b赋值给a,将r赋值给b
第二次执行 10 % 6 = 4; b=6 , r = 4 将b赋值给a,将r赋值给b
第四次执行 6 % 4 = 2 ; b=4 , r = 2 将b赋值给a,将r赋值给b
第五次执行 4 % 2 = 0 ; b=2 , r = 0 将b赋值给a,将r赋值给b
第六次执行 a=2,b=0 弹出数值2
所以16与10的最大公约数为 2
循环编程及其思路
使用循环进行编程
- 判断b是否为0(如果是a为最大公倍数)
- 判断a是否是b的倍数(a能整除b就说明b是最大公倍数如:16与8 ,20与10)
- 使用循环执行a除以b得到r
- 判断r是否为零当r为0时弹出b
- 将b赋值给a,r赋值给b
public static int gcd(int a, int b){if(b==0) return a;if(a%b==0) return b;int r;while(true){r = a%b;if(r==0) return b;a = b;b = r;}
}
【数学转编程】求出最大公约数的实现即思路分析====>最大公约数相关推荐
- 在数学中10!代表10的阶乘。既代表1*2*3*4....*10; * 现在要求编程求出8!。
package Day03;/*** 第四题:* 在数学中10!代表10的阶乘.既代表1*2*3*4....*10;* 现在要求编程求出8!.*/ public class Day03_Demo04 ...
- a除以b的编程怎么写C语言,输入a,b两个整数,编程求出a除以b得到的商和余数.c语言...
C语言编程问题 编程任意输入两个实数a和b,计算下面函数的值,并输出y值. a-b a>b y= a/b a #includevoidmain(){\x09floata,b,y;\x09prin ...
- 有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完。编程求出这堆棋子最少有多少枚棋子?
有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完.编程求出这堆棋子最少有多少枚棋子? # includ ...
- abc组合:已知abc+cba=n,其中a,b,c均为一位数,1000<n<2000,编程求出满足条件的a,b,c所有组合。
标题 abc组合类别时间限制 1S内存限制 1000Kb问题描述 已知abc+cba=n,其中a,b,c均为一位数,1000<n<2000,编程求出满足条件的a,b,c所有组合.输入说明 ...
- 有一个m行n列的矩阵,编程求出其中值最大的那个元素,以及其所在的行号和列号。
[题目描述] 有一个m行n列的矩阵,编程求出其中值最大的那个元素,以及其所在的行号和列号.(如果最大数有多个,则显示第一个出现的数据的信息). [输入] 有多行.第1行是两个整数,m(m≤10)和n( ...
- (11/∞)每日一练{1.将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有,编程求出所有可能的换法总数输出并输出各换法的组合。}
/*------------------------------------------------------- 将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求 ...
- 用c语言分别输出1 2 3,用C语言编程求出1!+2!+3!+……+20!的值
用C语言编程求出1!+2!+3!+--+20!的值 关注:189 答案:5 手机版 解决时间 2021-02-23 18:44 提问者妳熄滅叻菸,説啓従偂 2021-02-23 12:26 求一到 ...
- 1000以内所有同构数java算法_C语言编程求出1~1000的同构数
2015-10-06 C语言问题.要求编程求出总成绩并按总成绩排? #include int main() { int i,j,k; int tempX,tempY; int res[6][2]={0 ...
- matlab随机矩阵求最大值,产生一个5*7的随机矩阵,编程求出其最小值和最大值及其所处的位置....
matlab中怎么产生一个随机矩阵 and(m,n)产生mxn,0~1均匀分布的随机矩阵 1.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M. N从键盘输入 这个是那一章的全部答案 ...
最新文章
- ant design后台模板-1.前端环境搭建
- nginx搭建rtmp协议流媒体服务器总结
- nginx配置访问图片路径(windows)
- php获取类的熟悉,php如何获取类的所有方法
- 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II
- 关于appstore多语言版本,不可不看!
- 4.13 apache用户认证,跳转和访问日志
- 判断C#中的字符串是否是数字,如果是转换成int类型
- librtmp协议分析---RTMP_SendPacket函数
- linux系统ubuntu有哪些,Ubuntu Linux操作系统至少适合五种人使用
- Swimming Balls
- 初学C语言没有项目练手怎么行,这17个小项目收下不谢
- 前端开发 做一个新闻列表
- 在chrome里查询修改html代码,我需要在网页中直接编辑CSS?打开Web代码检查器
- dxf文件预览打开编辑相关控件推荐
- 单实例数据库迁移到rac环境(四)上
- Hadoop2.7.4 HA centos6.8
- 毕设 公式 格式 如何设置(WPS)
- 解决 手机能连接上wifi而电脑却却不能连接上wifi的情况
- npz、npy数据集文件转换图片