theo dõi

Gần nhất :

Thống kê câu hỏi

Chuyên mục : Lập trình
Topic : C
Hỏi lúc:
Lượt xem: 1,753

Nhập vào n phần tử trong mảng, sau đó nhập vào số nguyên k, hãy tìm tất cả dãy con có tổng bằng k?

Trịnh Quốc Hiển Trịnh Quốc Hiển
 07  01  00
07 bình chọn hữu ích bởi Phạm Văn Khoáng, Nguyễn Tú Linh Hồ Thu Ngân ... (tất cả)

Nhập vào n phần tử trong mảng, sau đó nhập vào số nguyên k, hãy tìm tất cả dãy con có tổng bằng k?

Ví dụ : nhâp 10 số

Input :

  • 3 6 1 2 5 1 6 3 4 2
  • k = 9

Output

  • 6 1 2
  • 1 2 5 
  • 6 3
  • 3 4 2

Giới hạn n <= 10^8

Các phần tử đều lớn hơn 0

1,753 xem 07 theo dõi 07 hữu ích hỏi –

Bạn biết ai đó có thể trả lời câu hỏi này?. Bạn có thể giúp đỡ bằng cách tìm những người giỏi nhất:

user user user user user

Phạm Văn Khoáng Phạm Văn Khoáng
 29  00  04
06 bình chọn hữu ích bởi Trịnh Quốc Hiển, Đỗ Duy Khánh Dương Vĩnh Thọ ... (tất cả)

Theo đáp án của bạn thì nó chỉ là các phần tử liền nhau trong dãy:

int arr[];
-- int put arr
-- int put k
int tong = 0;

for (int i = 0; i < arr.size() ; i++)
{
    ////////////------------------  set tong la so hien tai cua vog lap
    tong = arr[i];
    
    for (int j = i ; j < arr.size(); j++)
    {
        ////////////------------------ neu tong thoa man
        if (tong == k)
        {
            ////////////------------------ in chuoi con
            for (size_t ii = i; ii <= j; ii++)
            {
                ////////////------------------tuy theo cach muon in the nao
                ////////////------------------dai khai no se la ii tu i -> j
                print(arr[ii]);
            }

            // set j = arr.size de ket thuc vong lap j tiep tuc check so i khac
            j = arr.size();

            continue;
        }

        ////////////------------------set j = arr.size de ket thuc vong lap j tiep tuc check so i khac
        if (tong > k){
            j = arr.size();
            
            continue;
        }

        ////////////------------------ cong voi cac gia tri tiep theo
        tong += arr[j];
    }
}

Bài này sẽ là phức tạp nếu nó yêu cầu tính ra tất cả các phần tử mà có tổng  = k ( ví dụ 2 5 2 = 9 ) nhưng không liền nhau

1,436 xem 06 hữu ích trả lời –