Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85

    [c] cosa considerare per...

    cosa devo considerare, se devo fare un programma per convertire in numeri romani un numero in ingresso compreso tra 1 e 3000?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    prova a pensare a come lo faresti a mano, poi scrivi del codice e se non ti funziona postalo per correzioni

  3. #3
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    è proprio quello il problema: non so come scriverlo come pseudoalgoritmo, e quindi neppure l'algoritmo...

  4. #4
    Anche se la cosa mi sembra assurda, però è l'unica soluzione plausibile alla quale sono giunto.
    Ti consiglio di fare uno switch con case da 1 a 3000

  5. #5
    Originariamente inviato da groucho92
    Anche se la cosa mi sembra assurda, però è l'unica soluzione plausibile alla quale sono giunto.
    Ti consiglio di fare uno switch con case da 1 a 3000
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Originariamente inviato da groucho92
    Anche se la cosa mi sembra assurda, però è l'unica soluzione plausibile alla quale sono giunto.
    Ti consiglio di fare uno switch con case da 1 a 3000
    Qualche settimana ho fatto pure io un esercizio simile,
    qualche case è necessario ma da qui a scriverne 3000...

    Utilizza piuttosto dei cicli, ad esempio per il numero "III" devi stampare 3 volte il carattere 'I'.

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    non puo usare i cicli, almeno che non scomponga i numeri in somme, come appunto il sistema di numeri romano... quindi per esempio dividendo per cento trovi le centinaia e con uno switch le stampi a dovere, poi con le decine e infine con le unità...
    beh ho dimenticato migliaia ma si capisce xD
    secondo me è l'unica soluzione accettabile ù-ù
    comunque ciao

  8. #8
    Originariamente inviato da MItaly
    Ironizzavo XD!

  9. #9
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    Originariamente inviato da Scara95
    non puo usare i cicli, almeno che non scomponga i numeri in somme, come appunto il sistema di numeri romano... quindi per esempio dividendo per cento trovi le centinaia e con uno switch le stampi a dovere, poi con le decine e infine con le unità...
    beh ho dimenticato migliaia ma si capisce xD
    secondo me è l'unica soluzione accettabile ù-ù
    comunque ciao
    0k, ma il problema si pone quando si passa ai numeri tipo 48 e 52: come si fa a dire a un computer di aggiungere "II" prima del numero per fare la differenza, altrimenti per l'addizione?
    come dire <<scrivi IIL e LII>>?

  10. #10
    Originariamente inviato da Scara95
    non puo usare i cicli, almeno che non scomponga i numeri in somme, come appunto il sistema di numeri romano... quindi per esempio dividendo per cento trovi le centinaia e con uno switch le stampi a dovere, poi con le decine e infine con le unità...
    beh ho dimenticato migliaia ma si capisce xD
    secondo me è l'unica soluzione accettabile ù-ù
    comunque ciao
    Quindi utilizzi tre switch diversi, uno per le decine, uno per le centinaia e uno per le migliaia.
    Quello che ho fatto io è qualcosa di simile, ho sottratto piuttosto che dividere e ho utilizzato un unico costrutto switch.

    Prendendo ad esempio il numero 48 come chiesto da spode...

    finché numero > 0
    se il numero è maggiore di 10
    stampo 10
    sottraggo 10 al numero

    questo per stampare quattro volte il carattere 'X', dopodiché risolvo il numero 8 e cosi via.

    Questa è solo la mia soluzione, sicuramente ne esisto altre e di migliori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.