Confronto tra numeri in C
sempre alle prese con il C non riesco a venirne fuori da questo esercizio alquanto stupido...
Scivere una funzione f che, dati due numeri n1 e n2, ritorni 1 se nella rappresentazione di n1 e n2 in base 10 sono globalmente presenti tutte le cifre dallo 0 al 9, e ritorni 0 altrimenti.
ESEMPIO:
f(12345,6677890) deve ritornare 1 perchè tra n1 e n2 sono utilizzate tutte le cifre da 0 a 9
f(1234,333) deve ritornare 0
Il mio problema sta nel capire come fare per confrontare se nei due numeri ci sono tutte le cifre che alla fine è quello che chiede il testo.
Scivere una funzione f che, dati due numeri n1 e n2, ritorni 1 se nella rappresentazione di n1 e n2 in base 10 sono globalmente presenti tutte le cifre dallo 0 al 9, e ritorni 0 altrimenti.
ESEMPIO:
f(12345,6677890) deve ritornare 1 perchè tra n1 e n2 sono utilizzate tutte le cifre da 0 a 9
f(1234,333) deve ritornare 0
Il mio problema sta nel capire come fare per confrontare se nei due numeri ci sono tutte le cifre che alla fine è quello che chiede il testo.
Risposte
Un metodo molto naive è quello di iterare su ogni cifra verificando se è presente tra le cifre di almeno uno dei due..
non ho ben capito cosa vuoi dire...in pratica i due numeri devo vederli come due vettori?
In un certo senso.. Se no ti crei un vettore lungo 10 inizializzandolo tutto a zero e iteri sulle cifre dei due numeri incrementando il valore dell'array corrispondente alla cifra. Dopodiché verifichi che tutti i contatori dell'array siano non nulli.
"apatriarca":
In un certo senso.. Se no ti crei un vettore lungo 10 inizializzandolo tutto a zero e iteri sulle cifre dei due numeri incrementando il valore dell'array corrispondente alla cifra. Dopodiché verifichi che tutti i contatori dell'array siano non nulli.
macome faccio a vedere i due numeri come due vettori?
Ma non è che li vedi come due vettori.. devi solo fare un ciclo in cui ad ogni iterazione consideri una cifra diversa del numero. Immagino che prima di questo compito ti abbia mostrato o chiesto di scrivere del codice per, ad esempio, stampare le cifre di un numero. Come fai a farlo? Ne abbiamo anche parlato insieme in una tua altra discussione con un nome generico come questa: Esercizio C.
NdM: A proposito di titoli generici, mi sono appena ricordato di essere il moderatore di questa sezione e che, da regolamento, si devono dare titoli significativi alle discussioni. Ti chiedo quindi di modificare il titolo della discussione in qualcosa di meno generico di C (vale anche per l'altra).
NdM: A proposito di titoli generici, mi sono appena ricordato di essere il moderatore di questa sezione e che, da regolamento, si devono dare titoli significativi alle discussioni. Ti chiedo quindi di modificare il titolo della discussione in qualcosa di meno generico di C (vale anche per l'altra).
"apatriarca":
Ma non è che li vedi come due vettori.. devi solo fare un ciclo in cui ad ogni iterazione consideri una cifra diversa del numero. Immagino che prima di questo compito ti abbia mostrato o chiesto di scrivere del codice per, ad esempio, stampare le cifre di un numero. Come fai a farlo? Ne abbiamo anche parlato insieme in una tua altra discussione con un nome generico come questa: Esercizio C.
NdM: A proposito di titoli generici, mi sono appena ricordato di essere il moderatore di questa sezione e che, da regolamento, si devono dare titoli significativi alle discussioni. Ti chiedo quindi di modificare il titolo della discussione in qualcosa di meno generico di C (vale anche per l'altra).
modficato il titolo e ora ci penserò su questo esercizio se non ne esco chiedo a voi