Module: Istruzione Loop con condizione - while


Problem

6/21

Numero cifre

Theory Click to read/hide

Proviamo a scrivere un programma per risolvere il seguente problema:

Devi inserire un numero (lascia che sia inferiore a 3.000.000) e determinare il numero di cifre che contiene.

Idea di soluzione


Iniziamo un contatore di cifre di un numero. Inizialmente, il contatore è 0. Dobbiamo solo tagliare in sequenza l'ultima cifra dal numero (questo può essere fatto riducendo il numero di 10 volte, usando la divisione intera per 10), e ogni volta che dobbiamo aumentare il contatore di 1. 
Di conseguenza, dopo aver tagliato tutte le cifre, nel contatore otterremo il numero di cifre nel numero.
In un altro modo, l'algoritmo può essere formulato come segue:
FINO A CHE IL NUMERO NON È ZERO, DIMINUIRLO 10 volte e AUMENTARE IL CONTATORE DI 1.

numero (n) contatore
123 0
12 1
1 2
0 3
Il programma sarà simile a questo.
var n, conteggio: intero;
inizio
    leggi(n);
    contare := 0;
    mentre n <> 0 per iniziare
        contare += 1;
        n := n div 10;
    FINE;
    writeln('Numero - ', n, ' contiene ', conteggio, ' cifre');
FINE.
Devi conoscere questo programma a memoria, perché. sulla sua base vengono risolti molti altri problemi relativi al calcolo dei numeri per cifre.

Problem

Esegui il programma. 

Guarda il risultato del suo lavoro.
Va tutto bene nella frase di output?
Pensa a come puoi risolvere questo problema.