Strona Główna     FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy


Poprzedni temat :: Następny temat
C++ znów brak pomysłu
Autor Wiadomość
maniek910


Skąd: Kalisz
Wysłany: 2011-09-07, 12:38   C++ znów brak pomysłu

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 :D ?
_________________
 
   
ExeQtoR 
Moderator



Pomógł: 38 razy
Skąd: K.P.
Wysłany: 2011-09-07, 16:33   

maniek910 napisał/a:
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...


 
 
   
maniek910


Skąd: Kalisz
Wysłany: 2011-09-07, 19:47   

Kod:
Nie zapomnij o 2 pętlach zapętlonych ;-)
liczysz od 0...N, potem 1..n, następnie[....] od n-1 do n


Właśnie o tym myślałem ,tak jak napisałem w 1 poscie ale jak to zrobić :D ?
_________________
 
   
ExeQtoR 
Moderator



Pomógł: 38 razy
Skąd: K.P.
Wysłany: 2011-09-07, 20:31   

Kod:

for (int j=0; j<n; j++)
  {
   //TEMPStart = j;
   //TEMPSuma = 0;
    for (in i=j; i<n; i++)
    {
        //TEMPKoniec = i;
        //TEMPSuma = TEMPSuma + Tab[i];
        //if (Suma < TEMPSuma) { Start = TEMPStart; Koniec = TEMPKoniec;}
    }
  }
cout << "Start: " << Start << ", Koniec: " << Koniec << ", Suma: " << suma << endl;


Ja to bym tak zrobił, o ile takie cuś zadziała... 8)
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...


 
 
   
Wyświetl posty z ostatnich:   
Dodaj do: WypowiedÄ˝ dla Wykop  WypowiedÄ˝ dla Facebook  WypowiedÄ˝ dla Wyczaj.to  WypowiedÄ˝ dla Gwar  WypowiedÄ˝ dla Delicious  WypowiedÄ˝ dla Digg  WypowiedÄ˝ dla Furl  WypowiedÄ˝ dla Google  WypowiedÄ˝ dla Magnolia  WypowiedÄ˝ dla Reddit  WypowiedÄ˝ dla Simpy  WypowiedÄ˝ dla Slashdot  WypowiedÄ˝ dla Technorati  WypowiedÄ˝ dla YahooMyWeb
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group - manga
system walidacji dla gości opracował Petermechanic
Forum komputerowe
Strona wygenerowana w 0,23 sekundy. Zapytań do SQL: 9