*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数的程序清单5-9的另一种解法:首先找出n1和n2的最小值d,然后一次检验d、d-1、d-2、...2、1,是否是n1和n2的公约数。第一个满足条件的公约数就是n1和n2的最大公约数。编写程序,提示用户输入两个正整数,然后显示最大公约数

  • 题目
    • 题目概述
    • 破题
    • 程序清单5-9:从2向上找公约数
  • 代码

题目

题目概述

*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数的程序清单5-9的另一种解法:首先找出n1和n2的最小值d,然后一次检验d、d-1、d-2、…2、1,是否是n1和n2的公约数。第一个满足条件的公约数就是n1和n2的最大公约数。编写程序,提示用户输入两个正整数,然后显示最大公约数

破题

  1. 简单翻译题目:先找到要求的两个整数最小值,从最小值开始自减一直到找到第一个公约数结束
  2. 获取用户输入 --> 比较得到最小值 --> 从最小值开始向下找公约数

程序清单5-9:从2向上找公约数

import java.util.Scanner;public class qingdan {public static void main(String[] args) {// Create a ScannerScanner input = new Scanner(System.in);System.out.println("Enter first integer");int n1 = input.nextInt();System.out.println("Enter second integer:");int n2 = input.nextInt();int gcd = 1;    // Initial gcd is 1int k = 2;while ((k <= n1) && (k >= n2)){if(n1 % k == 0 && n2 % k == 0)gcd = k;    // Updata gcdk++;}System.out.println("The greatest common divisor for " + n1 + " and " + n2 +" is " + gcd);}
}

代码

import java.util.Scanner;public class Test5_14 {public static void main(String[] args) {// 获取用户输入Scanner input = new Scanner(System.in);System.out.println("Enter first integer");int n1 = input.nextInt();System.out.println("Enter second integer:");int n2 = input.nextInt();// 找到n1 n2最小值if(n1 > n1){int temp = n1;n1 = n2;n2 = temp;}int min = n1;int gcd = 1;    // Initial gcd is 1int k = min;while (k > 0){if(n1 % k == 0 && n2 % k == 0)gcd = k;    // Updata gcd--k;}System.out.println("The greatest common divisor for " + n1 + " and " + n2 +" is " + gcd);}
}

Java黑皮书课后题第5章:*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数的程序清单5-9的另一种解法:...提示用户输入两个正整数,然后显示最大公约数相关推荐

  1. Java黑皮书课后题第6章:*6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示。编写一个测试程序,提示用户输入字符串形式的电话号码。程序将字母(大写或小写)翻译成数字

    6.21(电话按键盘) 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示,编写一个方法,返回给定大写字母的数字, ...

  2. Java黑皮书课后题第7章:*7.33(文化:中国生肖)使用一个字符串数组存储动物名称来简化程序清单3-9的程序

    7.33(文化:中国生肖)使用一个字符串数组存储动物名称来简化程序清单3-9的程序 题目 题目描述 程序清单3-9 代码 运行实例 题目 题目描述 7.33(文化:中国生肖)使用一个字符串数组存储动物 ...

  3. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数

    ***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵.程序提示用户输入矩阵的行数.然后显示最大的子方阵的第一个元素.行数 题目 题目描述与运行示例 破题 代 ...

  4. Java黑皮书课后题第5章:*5.42(金融应用:求销售额)如下重写编程练习题5.39:①使用for循环替代do-while循环②允许用户自己输入COMMISSION_SOUGHT而非将它固定为常量

    5.42(金融应用:求销售额)如下重写编程练习题5.39:①使用for循环替代do-while循环②允许用户自己输入COMMISSION_SOUGHT而非将它固定为常量 题目 题目概述 编程练习题5. ...

  5. Java黑皮书课后题第5章:*5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。你的目标是一年挣30000美元,编写程序找最小销售额

    5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作.你的工资包括基本工资和提成.基本工资是5000美元.你的目标是一年挣30000美元,编写程序,找完成目标的最小销售额 题目 题目概述 ...

  6. Java黑皮书课后题第8章:**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法。编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积

    **8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法.编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 **8.6( ...

  7. Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和

    *8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.5(代数:两 ...

  8. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  9. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  10. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

最新文章

  1. VB.net和c#的区别!
  2. List 集合remove问题
  3. 社区团购真的是实体店终结者吗?
  4. 这台计算机上缺少此项目引用的 NuGet 程序包,DotNetCompilerPlatform
  5. Linux(CentOS6.4、CentOS6.3)下安装、配置PostgreSQL9.2
  6. Google C++ unit test 在ARM Android 2.3 上的编译与使用
  7. win10连接共享打印机_win7共享出来的打印机部分电脑无法连接的问题
  8. 360卸载方法(最全面)
  9. XCode 报错Thread 2:signal SIGABRT
  10. 职场人士,如何打造“自品牌”?
  11. 如何有效管理游戏开发过程
  12. steam游戏一直连接服务器,steam无法连接到更新服务器快速有效解决办法
  13. C语言课设——宿舍管理
  14. Windows 7x64 Ultimate Modified by Michael
  15. 2022编程语言排名, 后端开发语言选型
  16. 使用调试钩子屏蔽全局钩子
  17. 小米手机4S超简单刷成开发版获得ROOT超级权限的流程
  18. 2019年区块链技术领域的三个主要冲突
  19. Hive转换常用函数
  20. 如何解决移动硬盘和U盘正在被占用无法弹出

热门文章

  1. 特征图注意力_向往的GAT(图注意力模型)
  2. Flink Forward Asia Hackathon 最新参赛指南请查收
  3. Alibaba Cloud Linux 技术图谱首发,分享学习感言得大奖!
  4. Hologres基于TPCH的性能测试介绍
  5. 阿里云 RTC QoS 弱网对抗之变分辨率编码
  6. 含代码 | 支付宝如何优化移动端深度学习引擎?
  7. 云栖大会100位顶级大咖演讲PPT+视频全分享!
  8. 3D游戏开发套件指南(入门篇)
  9. 用Unity开发一款塔防游戏(一):攻击方设计
  10. 《闪耀暖暖》可增加“心之门”爆闪耀的方法?网友:巧合罢了