Tin học Dãy con có tổng bằng k

Nguyễn Trần Phát

Học sinh mới
Thành viên
8 Tháng chín 2020
111
45
11
16
Nghệ An
THCS Đặng Thai Mai
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Yêu cầu: Cho dãy số nguyên dương a1, a2, ..., an và số dương n. Đếm xem có bao nhiêu bộ chỉ số i, j thỏa mãn:
+) ai+ ai+1+...+aj=k
+) 1<=i<j<=n
Dữ liệu:
- Dòng 1 ghi 2 số nguyên dương n, k (0<n<=2000, k<1018)
- Dòng 2 ghi n số nguyên dương a1, a2, ...an.
Kết quả:
-
In ra số lượng cặp (i, j) thỏa mãn yêu cầu
 
  • Like
Reactions: Chins Tran

System32

Học sinh chăm học
Thành viên
25 Tháng chín 2018
343
348
76
Hà Nội
THPT Marie Curie
Yêu cầu: Cho dãy số nguyên dương a1, a2, ..., an và số dương n. Đếm xem có bao nhiêu bộ chỉ số i, j thỏa mãn:
+) ai+ ai+1+...+aj=k
+) 1<=i<j<=n
Dữ liệu:
- Dòng 1 ghi 2 số nguyên dương n, k (0<n<=2000, k<1018)
- Dòng 2 ghi n số nguyên dương a1, a2, ...an.
Kết quả:
-
In ra số lượng cặp (i, j) thỏa mãn yêu cầu
Python (Not sure if it works perfectly)
Mã:
n, k = map(int, input().split())
integers = list(map(int, input().split()))

if len(integers) != n:
    print(-1)

start, end = 0, 1
while start < n:
    total = sum(integers[start:end])
    if total >= k or end >= n:
        if total == k:
            print("({}, {})".format(start + 1, end))
        start += 1
        end = start
    end += 1
 
Last edited:

Nguyễn Trần Phát

Học sinh mới
Thành viên
8 Tháng chín 2020
111
45
11
16
Nghệ An
THCS Đặng Thai Mai
Python (Not sure if it works perfectly)
Mã:
n, k = map(int, input().split())
integers = list(map(int, input().split()))

if len(integers) != n:
    print(-1)

start, end = 0, 1
while start < n:
    total = sum(integers[start:end])
    if total >= k or end >= n:
        if total == k:
            print("({}, {})".format(start + 1, end))
        start += 1
        end = start
    end += 1
Yes, this code is definitely wrong! :(:(
 

quân pro

Cựu CTV Confession
Thành viên
22 Tháng bảy 2017
1,262
3,224
356
Hà Nội
THPT Trần Phú - Hoàn Kiếm
Yêu cầu: Cho dãy số nguyên dương a1, a2, ..., an và số dương n. Đếm xem có bao nhiêu bộ chỉ số i, j thỏa mãn:
+) ai+ ai+1+...+aj=k
+) 1<=i<j<=n
Dữ liệu:
- Dòng 1 ghi 2 số nguyên dương n, k (0<n<=2000, k<1018)
- Dòng 2 ghi n số nguyên dương a1, a2, ...an.
Kết quả:
-
In ra số lượng cặp (i, j) thỏa mãn yêu cầu
Sorry :(
Đề bài lạ quá à
 

System32

Học sinh chăm học
Thành viên
25 Tháng chín 2018
343
348
76
Hà Nội
THPT Marie Curie

Nguyễn Trần Phát

Học sinh mới
Thành viên
8 Tháng chín 2020
111
45
11
16
Nghệ An
THCS Đặng Thai Mai
Ok
Mã:
n, k = map(int, input().split())
integers = list(map(int, input().split()))

if len(integers) != n:
    print(-1)

pairs, start, end = 0, 0, 1
while start < n:
    total = sum(integers[start:end])
    if total >= k or end >= n:
        if total == k:
            pairs += 1
        start += 1
        end = start
    end += 1
print(pairs)
E cảm ơn anh!!! :):):):):)
 

dmp7106

Học sinh mới
Thành viên
9 Tháng chín 2021
4
3
6
18
Đắk Lắk
THPT Krong Ana
Ok
Mã:
n, k = map(int, input().split())
integers = list(map(int, input().split()))

if len(integers) != n:
    print(-1)

pairs, start, end = 0, 0, 1
while start < n:
    total = sum(integers[start:end])
    if total >= k or end >= n:
        if total == k:
            pairs += 1
        start += 1
        end = start
    end += 1
print(pairs)
a cho em xin code c++ với được k ạ
 
Top Bottom