https://meet.jit.si/DungTanKhoa
BIEU THUC CONG TRU
Tóm tắt đề bài
Cho số tự nhiên \(N\) lẻ.
- Tính giá trị của biểu thức cộng trừ xen kẽ:
$\(S = 1 - 2 + 3 - 4 + 5 - 6 + 7 - \dots + N\)$
- In ra giá trị của biểu thức trên một dòng duy nhất.
Hướng giải quyết
- Đọc số nguyên \(N\) từ đầu vào. Khai báo kiểu
long longđể tránh tràn số với các giá trị lớn. -
- Ta có thể nhóm các số liên tiếp thành từng cặp:
Phân tích toán học:
$\(S = (1 - 2) + (3 - 4) + (5 - 6) + \dots + ((N - 2) - (N - 1)) + N\)$
- Mỗi cặp có dạng \(x - (x + 1) = -1\).
- Do dãy có \(N\) số và \(N\) lẻ, có tất cả \((N - 1) / 2\) cặp có giá trị \(-1\), cùng với số cuối cùng là \(+N\).
- Do đó:
$\(\text{Ans} = -\frac{N - 1}{2} + N = \frac{N + 1}{2}\)$
-
Áp dụng trực tiếp công thức
Ans = (N + 1) / 2với độ phức tạp \(O(1)\). - In giá trị
Ansra màn hình.
Điền vào chỗ trống
C++
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long n;
... >> ...;
long long Ans = ...;
cout << ... << "\n";
return 0;
}
TONG CAC CHU SO
Tóm tắt đề bài
Cho số tự nhiên \(N\). Dãy số \(x\) được tạo bằng cách viết liền các số từ \(1\) đến \(N\): \(123456789101112...\)
- Yêu cầu tính tổng tất cả các chữ số của dãy số \(x\) đó.
- In ra kết quả duy nhất là tổng tính được.
Hướng giải quyết
- Đọc số nguyên \(N\) từ đầu vào.
- Khởi tạo biến lưu tổng kết quả
Ans = 0kiểu dữ liệulong long. - Duyệt qua từng số từ \(1\) đến \(N\) bằng vòng lặp
for:- Với mỗi giá trị \(i\) chạy từ \(1\) đến \(N\):
- Tạo biến phụ
val = i. - Dùng vòng lặp
while (val > 0)để bóc tách từng chữ số:- Lấy chữ số hàng đơn vị:
val % 10và cộng vào biếnAns. - Bỏ chữ số vừa lấy bằng phép chia nguyên:
val = val / 10.
- Lấy chữ số hàng đơn vị:
- Tạo biến phụ
- Với mỗi giá trị \(i\) chạy từ \(1\) đến \(N\):
- In giá trị
Ansra màn hình.
Điền vào chỗ trống
C++
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
... >> ...;
long long Ans = 0;
for (int i = 1; i <= n; i++) {
int val = i;
while (... > 0) {
Ans += ... % 10;
val /= ...;
}
}
... << ... << "\n";
return 0;
}
26_CBE1: C++ Cơ bản
Bình luận