KH_WEB_CB_2026_01

KH_DSA_C_2026_01

KH_TT_CB_2026_01

KH_OOP_C_SHARP_2026_01

Java

✨ Tổng hợp Solution: Các Bài Toán Dãy Số (Java) ✨

bởi Phạm Xuân Hoài - 27 tháng 2, 2026

✨ Tổng hợp Solution: Các Bài Toán Dãy Số (Java) ✨

Để tối ưu hóa việc tính toán các dãy số trong Java, chúng ta sẽ áp dụng hai phương pháp: Vòng lặp (Loop)Công thức Toán học.

💡 Công thức toán học dùng chung (Cấp số cộng):

  1. Số lượng số hạng (mm): >
    m=(SoCuoiSoDau)/KhoangCach+1m = (SoCuoi - SoDau) / KhoangCach + 1
  2. Tổng dãy số (SS): >
    S=(SoDau+SoCuoi)×m/2S = (SoDau + SoCuoi) \times m / 2

🌸 In các số lẻ từ 1 đến 99 và tính tổng của chúng

Yêu cầu: Xuất ra màn hình các số lẻ từ 1 đến 99 và tính tổng của chúng.

  • Cách 1 - Vòng lặp:
for (int i = 1; i <= 99; i += 2) {
    System.out.print(i + " ");
}

int sum = 0;
for (int i = 1; i <= 99; i += 2) {
    sum += i;
}
  • Cách 2 - Toán học (Thế số):
  • SoDau=1SoDau = 1
  • SoCuoi=99SoCuoi = 99
  • KhoangCach=2KhoangCach = 2
  • m=(991)/2+1=50m = (99 - 1) / 2 + 1 = 50 (số hạng)
  • Áp dụng: S=(1+99)×50/2=2500S = (1 + 99) \times 50 / 2 = 2500

🍀 Tổng các bội số của 5 (từ 1 đến 100)

Yêu cầu: Tính tổng dãy số 5, 10, 15, …, 100.

  • Cách 1 - Vòng lặp:
int sum = 0;
for (int i = 5; i <= 100; i += 5) {
    sum += i;
}
  • Cách 2 - Toán học (Thế số):
  • SoDau=5SoDau = 5
  • SoCuoi=100SoCuoi = 100
  • KhoangCach=5KhoangCach = 5
  • m=(1005)/5+1=20m = (100 - 5) / 5 + 1 = 20
  • Áp dụng: S=(5+100)×20/2=1050S = (5 + 100) \times 20 / 2 = 1050

📘 Tổng 1 + 2 + 3 + … + n

Yêu cầu: Tính tổng các số nguyên liên tiếp từ 1 đến nn.

  • Cách 1 - Vòng lặp:
long sum = 0;
for (int i = 1; i <= n; i++) sum += i;
  • Cách 2 - Toán học (Thế số):
  • SoDau=1SoDau = 1
  • SoCuoi=nSoCuoi = n
  • KhoangCach=1KhoangCach = 1
  • m=(n1)/1+1=nm = (n - 1) / 1 + 1 = n
  • Áp dụng: S=(1+n)×n/2S = (1 + n) \times n / 2

🍎 Tổng chẵn/lẻ cùng tính chất với n

Yêu cầu: nn lẻ tính tổng lẻ (1+3+...+n1+3+...+n), nn chẵn tính tổng chẵn (2+4+...+n2+4+...+n).

  • Cách 1 - Vòng lặp:
int soDau = (n % 2 != 0) ? 1 : 2;
long sum = 0;
for (int i = soDau; i <= n; i += 2) {
    sum += i;
}
  • Cách 2 - Toán học (Thế số):
  • Nếu n=10n = 10 (Chẵn):
  • SoDau=2SoDau = 2
  • SoCuoi=10SoCuoi = 10
  • KhoangCach=2KhoangCach = 2
  • m=(102)/2+1=5m = (10 - 2) / 2 + 1 = 5
  • Áp dụng: S=(2+10)×5/2=30S = (2 + 10) \times 5 / 2 = 30

  • Nếu n=11n = 11 (Lẻ):
  • SoDau=1SoDau = 1
  • SoCuoi=11SoCuoi = 11
  • KhoangCach=2KhoangCach = 2
  • m=(111)/2+1=6m = (11 - 1) / 2 + 1 = 6
  • Áp dụng: S=(1+11)×6/2=36S = (1 + 11) \times 6 / 2 = 36