从键盘输入的三个数的最小公倍数。

#include <stdio.h>
int main()
{
	int max(int x,int y,int z);
	int x0,x1,x2,x3,i=1,j;
 	printf("Input 3 numbers:");
 	scanf("%d,%d,%d",&x1,&x2,&x3);
 	x0=max(x1,x2,x3);                   
 	while(1)
 	{
		j=x0*i;
    	if(j%x1==0&&j%x2==0&&j%x3==0)
			break;
		i++;
	}
 	printf("%d,%d,%d,%d\n",x1,x2,x3,j);
	return 0;
}
int max(int x,int y,int z)
{
	if(x>y&&x>z)
    	return x;
    else if(y>x&&y>z)
    	return y;
	else
	    return z;
}

### 回答1: 以下是Java代码: ``` import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个数:"); int num1 = scanner.nextInt(); System.out.print("请输入第二个数:"); int num2 = scanner.nextInt(); int gcd = getGcd(num1, num2); int lcm = getLcm(num1, num2, gcd); System.out.println(num1 + "和" + num2 + "的最大公约为:" + gcd); System.out.println(num1 + "和" + num2 + "的最小公倍数为:" + lcm); } // 求最大公约 public static int getGcd(int num1, int num2) { if (num2 == 0) { return num1; } return getGcd(num2, num1 % num2); } // 求最小公倍数 public static int getLcm(int num1, int num2, int gcd) { return num1 * num2 / gcd; } } ``` ### 回答2: 在Java中编写函求最大公约最小公倍数可以通过使用欧几里得算法来实现。 首先,我们可以编写一个函来求最大公约(GCD): ```java public static int calculateGCD(int num1, int num2) { if (num2 == 0) { return num1; } return calculateGCD(num2, num1 % num2); } ``` 这个函会递归地求解两个数的最大公约,直到其中一个数变为0,此时另一个数就是最大公约。 接下来,我们可以编写一个函来求最小公倍数(LCM): ```java public static int calculateLCM(int num1, int num2) { int gcd = calculateGCD(num1, num2); return (num1 * num2) / gcd; } ``` 这个函会首先调用之前编写的求最大公约的函,然后用两个数的乘积除以最大公约来求最小公倍数。 最后,在主函中从键盘接收两个数,并打印输出它们的最大公约最小公倍数: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个数:"); int num1 = scanner.nextInt(); System.out.print("请输入第二个数:"); int num2 = scanner.nextInt(); int gcd = calculateGCD(num1, num2); int lcm = calculateLCM(num1, num2); System.out.println("最大公约为:" + gcd); System.out.println("最小公倍数为:" + lcm); } } ``` 通过运行主函,我们可以从键盘接收两个数,并打印输出它们的最大公约最小公倍数。 ### 回答3: 在Java中编写三个,一个函用于求最大公约,一个函用于求最小公倍数。 1. 求最大公约: 最大公约是两个数的最大公约。使用辗转相除法来实现: ```java public static int gcd(int num1, int num2) { while (num2 != 0) { int temp = num2; num2 = num1 % num2; num1 = temp; } return num1; } ``` 2. 求最小公倍数最小公倍数是两个数最小公倍数。可以通过两个数的乘积除以它们的最大公约来实现: ```java public static int lcm(int num1, int num2) { return (num1 * num2) / gcd(num1, num2); } ``` 3. 主函中从键盘接收两个数,并打印输出它们的最大公约最小公倍数: ```java public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个数:"); int num1 = scanner.nextInt(); System.out.print("请输入第二个数:"); int num2 = scanner.nextInt(); int gcdResult = gcd(num1, num2); int lcmResult = lcm(num1, num2); System.out.println("最大公约为:" + gcdResult); System.out.println("最小公倍数为:" + lcmResult); } ``` 这样,你就可以通过输入两个数,得到它们的最大公约最小公倍数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值