Java 基础写法 余数相同问题 【题目描述】 已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少?数据保证x有解。 【输入】 一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。 【输出】 一个整数,即满足条件的x的最小值。 【输入样例】 300 262 205 【输出样例】 19
时间: 2024-03-21 14:41:28 浏览: 136
好的,这是一个Java基础写法的余数相同问题题目。下面是Java代码的实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int x = 2;
while (true) {
if (a % x == b % x && b % x == c % x) {
System.out.println(x);
break;
}
x++;
}
}
}
```
输入三个正整数a、b、c,用一个变量x从2开始循环,判断x是否能够同时整除a、b、c,如果能够整除,则输出x并结束循环。由于题目保证x有解,因此一定能够找到满足条件的x。
相关问题
用Java最基础的写 余数相同问题 【题目描述】 已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少?数据保证x有解。 【输入】 一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。 【输出】 一个整数,即满足条件的x的最小值。 【输入样例】 300 262 205 【输出样例】 19
以下是使用Java最基础的写法:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int x = 1;
while (true) {
if (x % a == b % a && x % a == c % a) {
System.out.println(x);
return;
}
x++;
}
}
}
```
该程序首先读入a、b、c三个整数。然后,使用while循环枚举所有可能的x值,直到找到满足条件的最小值为止。在循环中,判断x分别除以a、b、c得到的余数是否相同,如果相同,则输出x并结束程序。注意,在循环中必须写上return语句,否则程序会一直运行下去。
java 基础写法 已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少?数据保证x有解。 【输入】 一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。 【输出】 一个整数,即满足条件的x的最小值。 【输入样例】 300 262 205 【输出样例】 19
以下是基础写法的实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int x = 2;
while (true) {
int r1 = a % x;
int r2 = b % x;
int r3 = c % x;
if (r1 == r2 && r2 == r3) {
System.out.println(x);
break;
}
// 如果a、b、c都除不尽x,那么x至少要增加到最小的不同余数处
if (r1 != r2 || r2 != r3) {
int k = Math.min(Math.min(r1, r2), r3);
x += k == 0 ? 1 : (x - k);
}
// 否则x继续增加
else {
x++;
}
}
}
}
```
这个程序的实现原理是从2开始不断增加x的值,直到找到一个x,使得a、b、c除以x的余数相同,然后输出这个x的值。如果a、b、c都除不尽x,那么x至少要增加到最小的不同余数处。如果a、b、c除以x的余数都相同,那么x继续增加。这个程序在一定程度上可以优化时间复杂度。但是,当a、b、c非常大时,程序的运行速度仍然会比较慢。
阅读全文