Mam do napisania taki program napisać program wczytuje z klawiatury rozmiar N tablicy, a następnie jej elementy (liczby dodatnie i ujemne), program ma znaleźć przedział w którym suma elementów jest największa, wyświetli tą sume oraz indeksy pierwszego i ostatniego elementu
np.
{1, 3, 4, -1, 5, -9} => start=0, stop=4, suma= 12
{-2, 3, 5, 8, -1, -3, 5} => start=1, stop=6, suma=17
{3, -4, 9, -2, 1} => start=2, stop=2, suma=9
{1,1,1,1,1,1} => start=0, stop=5, suma=6
Trochę nad tym myślałem iiiiiii nie wiem jak to sęsownie rozwiązać sumując kolejne elementy i sprawdzając czy z elementem i+1 jest większy jest głupie może się okazać że za 3 elementy będzie większe pozatym musiał bym n razy przelecieć tablicę zaczynając od i+1 elementu ... Jakieś sęsowne pomysły ?
program ma znaleźć przedział w którym suma elementów jest największa
Długo myślałem o co Ci chodzi...
{1, 3, 4, -1, 5, -9} całkowita suma to 3 a Tobie chodzi aby jakiś dowolny ciąg kolejnych elementów tablicy dał jak największą sumę ? dlatego tutaj podałeś że od 0 do 4 elementu włącznie, suma wyniesie: 12.
Przelatujesz od 0 do N kilka razy... to chyba jedyny sposób, do tego masz 4 zmienne A, Z, Suma, SumaTemp, gdzie trzymasz A- start, Z- koniec, SumaTemp- aktualna suma.
A, Z Suma zapisujesz kiedy SumaTemp jest większa niż Suma(A i Z to Indeksy)
Nie zapomnij o 2 pętlach zapętlonych
liczysz od 0...N, potem 1..n, następnie[....] od n-1 do n
Algorytm i zdanie lekko bezsensu, bo nie spotkałem się do tej pory z taką potrzebą, bywała potrzebna suma elementów, lub ilość elementów, ewentualnie stwierdzenie że muszą być od min do max po układane, ale tak aby przedział wyliczać, to pierwsze słyszę, tym bardziej że w C# nie masz tablic tylko listy i polecenie Sort ))) więc w tedy indeksy się zmieniają
Ale zadanie godne uwagi - powodzenia aaaa.... zrób dynamiczną tablicę
cout << "podaj maksymalną ilosc tablicy"; cin>> n; i dopiero N do tablicy )
_________________ Moderatora grzecznie się słuchamy,
nie spamujemy, nie bluzgamy...
Ja to bym tak zrobił, o ile takie cuś zadziała...
Dodaje aktualną wartość z tablicy, a nie żadną następna, tak są ustawione pętle )
Add///
Jak widzisz, już można co nieco uprościć xD ja zawsze pierwszy algorytm opakuje w niepotrzebne rzeczy, potem wywalam czyszczę optymalizuję ))
Na początku u mnie liczy się aby to ruszyło
_________________ Moderatora grzecznie się słuchamy,
nie spamujemy, nie bluzgamy...
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum