algoritmo per stampare le cifre nell'ordine corretto

1

Ho provato a scrivere un algoritmo che stamperà separatamente i numeri da un numero intero. Devo scriverlo in Pseudocode. So come scrivere un algoritmo che inverta le cifre.

digi(n): 
  while n != 0:
    x = n % 10 
    n = n // 10 
    print (x)

Ma non so come scrivere un algoritmo per stampare le cifre nell'ordine corretto. Ad esempio, l'input è integer 123467 e l'output è: 1 2 3 4 6 7 . I numeri verranno inseriti dall'utente e non possiamo convertirli in una stringa. Ho bisogno di aiuto per iniziare a scrivere algoritmi.

    
posta Aga Waw 23.10.2012 - 21:50
fonte

4 risposte

4

log n ti darà il numero di cifre (decimali) in n .

Tieni presente che 1234 / (10^[4-1]) = 1.234 che arrotonda a 1 . Ripeti se necessario ( mod 10 ) per stampare ogni cifra.

  • 1.234 -> 1
  • 12.34 % 10 -> 2.34 -> 2
  • 123.4 % 10 -> 3.4 -> 3
  • 1234 % 10 -> 4
risposta data 23.10.2012 - 21:58
fonte
1

Se hai già un algoritmo per stamparli in ordine inverso mettili in pila e poi stampa la pila che invertirà l'ordine.

    
risposta data 23.10.2012 - 22:02
fonte
1

Il solito algoritmo è scrivere una funzione ricorsiva che ricorre con n / 10 e quindi stampa n% 10. Credito extra per gestire correttamente i numeri negativi.

    
risposta data 24.10.2012 - 09:25
fonte
1

Metodo ricorsivo

function print_straightforward
if(N<10)
  print N
else
  print_straightforward(N/10);
  print N%10
    
risposta data 16.01.2013 - 08:17
fonte

Leggi altre domande sui tag