PDA

Visualizza la versione completa : [C] Consigli sulla creazione di un algoritmo..


autior
10-09-2010, 16:21
Salve a tutti!

Vorrei creare una funzione che, dato un intero A, trovi un numero intero X, che moltiplicato per A restituisca il suo "contrario" (ad esempio: X è 123, se moltiplicandolo con A si ottiene 321 allora la funzione deve ritornare X, altrimenti si incrementa X che diventa 124.. ovviamente si inserisce un limite alle moltiplicazioni!).

La cosa che non so come realizzare è proprio la verifica del "contrario".. cioè con che formula puoi calcolarti il "contrario" di un int per effettuare il confronto? Anche pensando agli operatori bitwise non mi viene niente in mente... voi avete qualche idea?

fusionalfa
10-09-2010, 16:27
ti basta separare le cifre di un numero:

considera 123 , se vuoi prendere solo 3 dovrai fare 123 % 10...
se invece fai 123/10 ti prenderà dodici come risultato


ma ti serve l'algoritmo?

autior
10-09-2010, 19:17
Originariamente inviato da fusionalfa
ti basta separare le cifre di un numero:

considera 123 , se vuoi prendere solo 3 dovrai fare 123 % 10...
se invece fai 123/10 ti prenderà dodici come risultato


ma ti serve l'algoritmo?

Mi basta una buona spiegazione. :fiore:

Comunque avevo dimenticato il mod.. :shy: E' si, così credo si possa fare. Cioè io penso che si potrebbero estrarre tutti i numeri dell'X tramite il %, inserirli in un array, moltiplicarli per le varie potenze di 10, addizionarli fra di loro e confrontare il risultato con il prodotto di A * X. Se ti trovi ritorna X, altrimenti incrementa X e ripeti il ciclo. Può andare così?

Non so perchè, ma sembra un tantinello complicato.. :master:

fusionalfa
10-09-2010, 19:30
Originariamente inviato da autior
Mi basta una buona spiegazione. :fiore:

Comunque avevo dimenticato il mod.. :shy: E' si, così credo si possa fare. Cioè io penso che si potrebbero estrarre tutti i numeri dell'X tramite il %, inserirli in un array, moltiplicarli per le varie potenze di 10, addizionarli fra di loro e confrontare il risultato con il prodotto di A * X. Se ti trovi ritorna X, altrimenti incrementa X e ripeti il ciclo. Può andare così?

Non so perchè, ma sembra un tantinello complicato.. :master:


si ti conviene fare cosi,prendi il numero e con la regola del modulo metti una cifra per volta in un array cosi puoi invertire i numeri. buona fortuna :D

qualsiasi problema siamo qua..

autior
10-09-2010, 22:33
Finalmente l'ho finito, funziona perfettamente! :D Grazie per le tue dritte fusion, senza non sarei andato molto lonano. :fiore:

Potete chiudere. :ciauz:

Loading