การหาผลรวมต่ำสุดและสูงสุดของ 4 จำนวนจาก 5 จำนวน
โจทย์
You are given an array of five positive integers. Your task is to compute the minimum and maximum values that can be obtained by summing exactly four of these five integers. You need to print the minimum and maximum sums as space-separated integers on a single line.
Input:
- A single line containing five space-separated positive integers.
Output Format:
- Print two space-separated long integers representing the minimum sum and the maximum sum that can be calculated by summing exactly four of the five integers.
Constraints:
- Each integer in the array will be a positive integer, and the maximum number of integers is fixed at five.
Explanation:
- The minimum sum is obtained by summing the smallest four integers: .
- The maximum sum is obtained by summing the largest four integers: .
| Input | Output |
|---|---|
| 1 2 3 4 5 | 10 14 |
โค้ด
import java.util.Arrays;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] numbers = new int[5];
for (int i = 0; i < 5; i++) {
numbers[i] = scanner.nextInt();
}
Arrays.sort(numbers);
int sumMin = 0;
for (int i = 0; i < 4; i++) {
sumMin += numbers[i];
}
int sumMax = 0;
for (int i = 4; i > 0; i--) {
sumMax += numbers[i];
}
System.out.printf("%d %d", sumMin, sumMax);
}
}คำอธิบาย
1. การประกาศคลาสและ Import
import java.util.Arrays;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {import java.util.Arrays: นำเข้าคลาสสำหรับจัดการอาเรย์ (ใช้สำหรับการเรียงลำดับ)import java.util.Scanner: นำเข้าคลาสสำหรับรับข้อมูล
2. การรับข้อมูล
Scanner scanner = new Scanner(System.in);
int[] numbers = new int[5];
for (int i = 0; i < 5; i++) {
numbers[i] = scanner.nextInt();
}- สร้างอาเรย์ขนาด 5 ช่อง
- วนลูปรับตัวเลข 5 จำนวน เก็บในอาเรย์
3. การเรียงลำดับข้อมูล
Arrays.sort(numbers);- ใช้เมธอด
sort()เพื่อเรียงลำดับตัวเลขจากน้อยไปมาก - หลังการเรียง ตำแหน่งที่ 0 จะเป็นเลขที่น้อยที่สุด และตำแหน่งที่ 4 จะเป็นเลขที่มากที่สุด
4. การคำนวณผลรวมต่ำสุด
int sumMin = 0;
for (int i = 0; i < 4; i++) {
sumMin += numbers[i];
}- วนลูปรวมตัวเลข 4 ตัวแรก (ตำแหน่ง 0-3)
- ได้ผลรวมของตัวเลขที่น้อยที่สุด 4 ตัว
5. การคำนวณผลรวมสูงสุด
int sumMax = 0;
for (int i = 4; i > 0; i--) {
sumMax += numbers[i];
}- วนลูปรวมตัวเลข 4 ตัวสุดท้าย (ตำแหน่ง 1-4)
- ได้ผลรวมของตัวเลขที่มากที่สุด 4 ตัว
6. การแสดงผล
System.out.printf("%d %d", sumMin, sumMax);- แสดงผลรวมต่ำสุดและสูงสุด คั่นด้วยช่องว่าง
แผนภาพการทำงาน
ตัวอย่างการทำงาน
สมมติว่ามีข้อมูลนำเข้าเป็น: 1 2 3 4 5
- หลังการเรียงลำดับ:
[1, 2, 3, 4, 5] - ผลรวมต่ำสุด:
1 + 2 + 3 + 4 = 10 - ผลรวมสูงสุด:
2 + 3 + 4 + 5 = 14 - ผลลัพธ์ที่แสดง:
10 14
ปรับปรุงล่าสุด