Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift
Tìm ~x~ nguyên dương lớn nhất, biết ~1 + 2 + 3 + ... + x \le N~
Giới hạn
- ~5 \le N \le 10^9~
- ~N \in N^*~
Input
Số nguyên dương ~N~
Output
Giá trị của ~x~ thỏa mãn yêu cầu bài toán
Sample
Input #1
6
Output #1
3
Bình luận
ko bít lm😢🥸
Nhức Nhức cái đầu😿😿😿
for ( int i = 1; i <= n ; i ++) if (tong ==a) {
cout << i << endl;
break;
}else if ( tong > a){ cout << i -1; break; }
ai có in4 không xin với
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Khó quá
không khó đâu
ll n; cin >> n; cout << (-1 + ll(sqrt(1 + 4 * (2 * n)))) / 2 << en;
Giải thích: Ta có công thức tính nhanh tổng (1 + 2 + 3 + ... + x) = ((x + 1) * x) / 2.
Từ đó ta có hệ bất pt: ((x + 1) * x) / 2 <= N (N đã biết) Tương đương x^2 + x - 2N <= 0
xét delta = 1 - 4 * (-2 * N) (b^2 - 4ac) ta có 2 nghiệm x1, x2 chỉ lấy nghiệm dương: x = -b + sqrt(delta) / 2a).
Đó là kết quả của bài toán.
ll = long long
Tự tạo đi