PDA

View Full Version : [C] Disposizione con ripetizione


Dav3i
18-08-2011, 15:29
Ciao a tutti.
Avrei bisogno di una mano nella risoluzione di questo esercizio. :)


Quesito 5
Scrivere un programma che chiede all’utente un numero intero n positivo e poi visualizza (stampa a video) tutte le combinazioni di lunghezza n costituite da sequenze di simboli ’+’ e ’-’. L’ordine delle combinazioni č a piacere.

Esempio 1
Ingresso: 3
Uscita: +++ ++- +-+ +-- -++ -+- --+ ---

Esempio 2
Ingresso: 2
Uscita: ++ +- -+ --


Ho notato che, incolonnando in questo modo le varie combinazioni di '+' e '-',


++
+-
-+
--

+++
++-
+-+
+--
-++
-+-
--+
---



a partire dall'ultima colonna l'alternanza tra i due simboli raddoppia di volta in volta. Ho tentato di scrivere un algoritmo che risolvesse l'esercizio seguendo questa "caratteristica", ma non riesco a farlo funzionare.
Riporto la parte di codice che ho scritto, anche se č sbagliata.
Un consiglio su come risolvere il problema, dato che non ho proprio idea di come aggirare l'ostacolo? :D
Grazie in anticipo.


while (cont < n)
{
totdisp = N * totdisp;
cont ++;
}
printf ("\nTotale combinazioni possibili: %d\n\n", totdisp);

car = '+';
b = 0;

for (riga = 0, ctrl = totdisp; riga < totdisp; riga ++)
{
for (col = 0; col < n; col ++)
{
ctrl = ctrl / 2;
for (a = 0; a < ctrl; a ++)
printf ("%c", car);
b = b + 1;
if (b % 2 == 0)
car = '+';
else
car = '-';
}
printf ("\n");
}

Dav3i
19-08-2011, 12:29
Nulla, risolto.