自然语言描述问题

公约数

公约数,亦称“公因数”。它是指能同时整除几个整数的数 。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数

问题描述

计算两个非负整数a和b的最大公约数:
若b为0,则最大公约数为a。否则,将a除以b得到余数r,a和b的最大公约数即为b和r的最大公约数。

数学描述

编程

递归编程及其思路

使用递归进行编程

  1. 判断b是否是0如果是零了最大公约数就是a(也就是如果a是b的倍数举个例子如[16与0],[20与0],[11与0]那么8、10、11就分别是这几个数的最大公约数)
  2. 如果不是就用a除以b获得r,那么a,b最大公约数就是b,r的最大公约数
  3. 把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

循环编程及其思路

使用循环进行编程

  1. 判断b是否为0(如果是a为最大公倍数)
  2. 判断a是否是b的倍数(a能整除b就说明b是最大公倍数如:16与8 ,20与10)
  3. 使用循环执行a除以b得到r
  4. 判断r是否为零当r为0时弹出b
  5. 将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;}
}

【数学转编程】求出最大公约数的实现即思路分析====>最大公约数相关推荐

  1. 在数学中10!代表10的阶乘。既代表1*2*3*4....*10; * 现在要求编程求出8!。

    package Day03;/*** 第四题:* 在数学中10!代表10的阶乘.既代表1*2*3*4....*10;* 现在要求编程求出8!.*/ public class Day03_Demo04 ...

  2. 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 ...

  3. 有一堆棋子,两枚两枚的数,最后余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 ...

  4. 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所有组合.输入说明 ...

  5. 有一个m行n列的矩阵,编程求出其中值最大的那个元素,以及其所在的行号和列号。

    [题目描述] 有一个m行n列的矩阵,编程求出其中值最大的那个元素,以及其所在的行号和列号.(如果最大数有多个,则显示第一个出现的数据的信息). [输入] 有多行.第1行是两个整数,m(m≤10)和n( ...

  6. (11/∞)每日一练{1.将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有,编程求出所有可能的换法总数输出并输出各换法的组合。}

    /*------------------------------------------------------- 将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求 ...

  7. 用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 求一到 ...

  8. 1000以内所有同构数java算法_C语言编程求出1~1000的同构数

    2015-10-06 C语言问题.要求编程求出总成绩并按总成绩排? #include int main() { int i,j,k; int tempX,tempY; int res[6][2]={0 ...

  9. matlab随机矩阵求最大值,产生一个5*7的随机矩阵,编程求出其最小值和最大值及其所处的位置....

    matlab中怎么产生一个随机矩阵 and(m,n)产生mxn,0~1均匀分布的随机矩阵 1.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M. N从键盘输入 这个是那一章的全部答案 ...

最新文章

  1. ant design后台模板-1.前端环境搭建
  2. nginx搭建rtmp协议流媒体服务器总结
  3. nginx配置访问图片路径(windows)
  4. php获取类的熟悉,php如何获取类的所有方法
  5. 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II
  6. 关于appstore多语言版本,不可不看!
  7. 4.13 apache用户认证,跳转和访问日志
  8. 判断C#中的字符串是否是数字,如果是转换成int类型
  9. librtmp协议分析---RTMP_SendPacket函数
  10. linux系统ubuntu有哪些,Ubuntu Linux操作系统至少适合五种人使用
  11. Swimming Balls
  12. 初学C语言没有项目练手怎么行,这17个小项目收下不谢
  13. 前端开发 做一个新闻列表
  14. 在chrome里查询修改html代码,我需要在网页中直接编辑CSS?打开Web代码检查器
  15. dxf文件预览打开编辑相关控件推荐
  16. 单实例数据库迁移到rac环境(四)上
  17. Hadoop2.7.4 HA centos6.8
  18. 毕设 公式 格式 如何设置(WPS)
  19. 解决 手机能连接上wifi而电脑却却不能连接上wifi的情况
  20. npz、npy数据集文件转换图片

热门文章

  1. 第三周OJ刷题渊子赛马
  2. mysql 小于多少行,MySQL查询来查找字符串少于四个字符的所有行?
  3. html接入qq客服,Vue 前端框架接入QQ在线客服
  4. Spring Boot 内嵌Tomcat的端口号的修改
  5. 乐高四光感巡线思路解说
  6. MTR命令:网络诊断的得力助手
  7. 敏之澳电商:拼多多店群到底怎么做呢?
  8. 云计算技术与应用中云主机创建错误
  9. 浏览器如何将你的http请求转为https请求?
  10. 随机抽奖程序_某个知乎想法抽奖程序随机更新。jpg