Hướng dẫn giải của [200 đề thầy Đức] Bài 63: Xếp tháp


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Bình có vô hạn khối lập phương, cần xếp n tháp với bậc từ 1 đến n. Tháp bậc i có đáy gồm i khối. Tính tổng số khối cần dùng.

Cách làm
  • Tháp bậc i gồm các lớp có i, i - 1, ..., 1 khối, nên tổng số khối của tháp bậc i là 1 + 2 + ... + i = i * (i + 1) / 2.
  • Cộng số khối của các tháp từ bậc 1 đến bậc n vào một biến tổng.
  • Ví dụ: n = 3 thì 1 + 3 + 6 = 10, khớp với ví dụ.

Với n <= 10000 tổng có thể lên tới khoảng 2*10^11, nên phải dùng long long.

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n;
    cin >> n;

    // Tháp bậc i gồm các lớp có i, i-1, ..., 1 khối, tổng là i*(i+1)/2 khối
    long long tong = 0;
    for (long long i = 1; i <= n; i++) {
        tong += i * (i + 1) / 2;
    }
    cout << tong << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.