• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Mam problem z napisaniem krótkiego programu

Object Storage Arubacloud
+2 głosów
526 wizyt
pytanie zadane 5 listopada 2018 w C# przez Curiosis Użytkownik (540 p.)
zmienione kategorie 6 listopada 2018 przez Curiosis
Napisz program (z wykorzystaniem tylko jednej pętli), który generuje wszystkie słowa długości 4 nad alfabetem {a, b, c}. Litery mogą się powtarzać. Przykładowe słowa: aaaa, abbc, baba

Pomoglibyście z tym programikiem ? :( Kompletnie nie wiem jak się za to zabrać

Język c++
komentarz zamknięcia: Najlepsza odpowiedź znaleziona

2 odpowiedzi

–2 głosów
odpowiedź 5 listopada 2018 przez X3h Dyskutant (9,540 p.)
wybrane 6 listopada 2018 przez Curiosis
 
Najlepsza

Po burzy z mojego rozwiązania wrzucam kolejne, które uwzględnia powtórzenia zbiorów. Mało zmian bo tylko jeden szczegół w linii:

words(word.substr(i, j), out+word.at(i), len);

W tym przypadku zostaną odrzucone powtórzenie zbiorów, a w tym:

words(word, out+word.at(i), len);

już nie.

Cały kod:

#include <iostream>
using namespace std;
 
void words(string word, string out, int len){
    if(out.length() == len){
        cout << out << endl;
        return;
    }
    for(int i = 0, j = word.length(); i < j; ++i){
        words(word, out+word.at(i), len);
    }
}
 
int main(){
    words("abc", "", 4);
    return 0;
}

Teraz liczę na lepsze przyjęcie, ale zawsze jest ale.

komentarz 6 listopada 2018 przez X3h Dyskutant (9,540 p.)
Nie rozumiem co jest złego w tym co napisałem. W szczególności, że moja odpowiedź jest wybrana za najlepszą.
komentarz 6 listopada 2018 przez mokrowski Mędrzec (155,460 p.)
Rekurencja? :) A po co?
komentarz 6 listopada 2018 przez X3h Dyskutant (9,540 p.)
Nie rozumiem uśmieszku po rekurencja. To chyba tak prowokacyjnie, nie? Proszę wysławiać się jaśniej. A po co? No tak. Bo widzisz w treści zadania jest jasno napisane, o tylko jednej pętli. Zacznij czytać ze zrozumieniem i dopiero później coś komentuj.
komentarz 6 listopada 2018 przez mokrowski Mędrzec (155,460 p.)
Dziękuję za pouczenie. Postaram się czytać w przyszłości ze zrozumieniem. Teraz skomentuję bo zrozumiałem :) <- (prowokacyjny uśmieszek)
0 głosów
odpowiedź 5 listopada 2018 przez mokrowski Mędrzec (155,460 p.)
przywrócone 6 listopada 2018 przez mokrowski

Masz 4 pozycje kodu 3-kowego. Czyli na najmłodszej (najbardziej z prawej) będą wartości które są wynikiem modulo 3 z licznika, na nieco starszej (2 od prawej) licznik dzielony przez 3 modulo 3 itd... :)

Licznik ma iterować od 0 do 81 (bo 3 do potęgi 4 to 81). Teraz do każdej z pozycji dodaj kod znaku 'a' i wyświetl jako char.

PS. No to i ja umieszczę. Specjalnie nieco mniej ortodoksyjne ale realizuje to co powinno... 

#include <iostream>

int main() {
    char buff[5] = {};
    for(int i = 0; 
        buff[0] = 'a' + (i / 27),
        buff[1] = 'a' + ((i / 9) % 3),
        buff[2] = 'a' + ((i / 3) % 3),
        buff[3] = 'a' + (i % 3),
        std::cout << buff << '\n',
        i < 81; ++i);
}

Tak, wiem że magic value i słabo czytelne... tak dla odmiany popełniłem :-) 

Podobne pytania

0 głosów
2 odpowiedzi 532 wizyt
+1 głos
5 odpowiedzi 729 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...