Forum
>>
Principianti
>>
Funzioni per i divisori di un numero
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da iulian |
2019-01-20 21:46:14 - Funzioni per i divisori di un numero
|
Salve a tutti, in un esercizio mi viene chiesto di scrivere una funzione div11(x) che determini se un intero x>=0 è divisibile per 11, senza usare divisione intera, moltiplicazione e operatore resto.
Il suggerimento è di ricordare che un numero è divisibile per 11 se il valore assoluto differenza tra la somma delle sue cifre in posizione pari e tra la somma delle sue cifre in posizione dispari è 0 o un multiplo di 11. Qualcuno potrebbe aiutarmi a capire come scrivere la funzione? --- Ultima modifica di iulian in data 2019-01-20 21:46:56 --- |
|
Scritto da Daniele aka Palmux |
2019-01-20 23:04:05 - Re: Funzioni per i divisori di un numero
|
Ciao caro, non è per volerti essere avverso, ma è giusto che questo esercizio provi a scriverlo da solo. Non è impossibile, hai già la traccia di quello che devi fare in quello che scrivi, quindi tramutalo in codice (se poi non capisci qualcosa condividile qui).
Credimi, è infinitamente meglio che impari da solo, piuttosto che leggere una risposta fatta da altri. Sai quella cosa dei pesci e del pescare? Ecco appunto... Cya |
|
Scritto da iulian |
2019-01-20 23:09:26 - Re: Funzioni per i divisori di un numero
|
Forse mi perdo in un bicchiere d'acqua, ma non capisco come sommare le cifre pari (e idem per le dispari)
|
|
Scritto da Daniele aka Palmux |
2019-01-20 23:28:58 - Re: Funzioni per i divisori di un numero
|
Non volendo/potendo usare gli strumenti che hai indicato, ci sono molte cose che potresti fare.
Per esempio estrarre l'ultima cifra dal tuo numero (intero) e vedere che numero è, oppure sfruttare l'aritmetica binaria propria di ogni scatola magica con una cosa tipo: # pari = (<valore> & 1) == 0 # dispari = (<valore> & 1) == 1 >>> pari = (11 & 1) == 0 >>> pari False >>> dispari = (11 & 1) == 1 >>> dispari True Cya |
|
Scritto da RicPol |
2019-01-21 19:58:02 - Re: Funzioni per i divisori di un numero
|
"non usando la divisione intera, il resto..."
Ecco, questo mi sembra il classico esercizio inutilmente complicato che mi fa incavolare contro gli insegnanti incapaci di insegnare. Voglio dire, mi sembrerebbe più interessante vedere se sei capace di replicare l'algoritmo carta-e-penna in python, estraendo le cifre pari e dispari a colpi di divisione intera e resto, appunto. Dovresti provare a risolverlo in questo modo: fidati, è molto più interessante e istruttivo. Invece, vista questa versione complicata in modo assurdo e senza reale motivo didattico che ti hanno dato, il mio umile suggerimento è barare, ovviamente. - Trasforma il numero in una stringa - a questo punto le stringhe hanno già tutti gli strumenti per estrarre facilmente le cifre pari e dispari (con lo "slicing") - estrai tutte le cifre pari, ritrasformale in numero, e fai la somma - lo stesso per le dispari - e vai avanti https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
Pagina: 1
Esegui il login per scrivere una risposta.