300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java黑皮书课后题第5章:*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数

Java黑皮书课后题第5章:*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数

时间:2022-05-11 18:20:05

相关推荐

Java黑皮书课后题第5章:*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数

*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的最大公约数。编写程序,提示用户输入两个正整数,然后显示最大公约数

破题

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

程序清单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的另一种解法:...提示用户输入两个正整数 然后显示最大公约数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。