Esercizio sulle strutture di controllo

di il
6 risposte

Esercizio sulle strutture di controllo

Ciao a tutti,
è la prima volta che scrivo su questo forum e spero di trovare un aiuto. Mi sono imbattuto in un esercizio riguardo le strutture di controllo: devo calcolare tutti i numeri di esattamente tre cifre tali che la somma dei quadrati delle loro cifre sua uguale al quoziente della divisione intera fra il numero e 3.

Ho provato a dare una soluzione a questo esercizio con questo codice:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n = 100, s = 0, q;
for (n = 100; n <= 999; n++){
while(n > 0){
s += pow((n % 10),2);
n /= 10;
}
q = n / 3;
if (s == q) cout << n << endl;
else cout << "null" << endl;
}
return 0;
}

Questo codice però mi dà in output solo una serie di "null", come se non ci fosse nessun numero che soddisfi quelle condizioni. MI chiedevo quindi se nel ciclo di for ci fosse qualche errore perché io per ora non ne ho trovati.
Grazie in anticipo.

6 Risposte

  • Re: Esercizio sulle strutture di controllo

    Attenzione nel ciclo while modifichi n e quindi il ciclo for non può procedere correttamente
  • Re: Esercizio sulle strutture di controllo

    Aggiungo:
    - indentazione, questa sconosciuta!
    - per postare del codice sul forum esistono gli appositi tag;
    - quanto vale s all'inizio della seconda iterazione del for?
    - perchè utilizzare una libreria per svolgere un semplice quadrato?
    - quale sarebbe l'utilità di stampare "null"?
  • Re: Esercizio sulle strutture di controllo

    Nippolo ha scritto:


    Aggiungo:
    - indentazione, questa sconosciuta!
    - per postare del codice sul forum esistono gli appositi tag;
    - quanto vale s all'inizio della seconda iterazione del for?
    - perchè utilizzare una libreria per svolgere un semplice quadrato?
    - quale sarebbe l'utilità di stampare "null"?
    grazie per le risposte, è la prima volta che scrivo su questo forum quindi non sapevo ci fosse il tag apposito. Per quanto riguarda la libreria cmath l' avevo utilizzata solo come prova per essere sicuro che il calcolo fosse giusto ed evitare di confondermi con le precedenze. Poi per quanto riguarda il "null", dato che in output ottenevo solo scheramata nera, volevo verificare che effettivamente il ciclo avvenisse del tutto. Scusa l'utilizzo di eventuali termini impropri, sono abbastanza alle prime armi. Grazie ancora per l'attenzione.
  • Re: Esercizio sulle strutture di controllo

    Figurati, cmq gli errori veri e propri sono quelli sulle variabili n e s che ti sono stati fatti notare nei precedenti post.

    P.S.
    I numeri che soddisfano quelle condizioni dovrebbero essere 3, se nella fretta non ho commesso qualche errore!
  • Re: Esercizio sulle strutture di controllo

    Il motivo del tuo errore sta nel tentativo di modificare la variabile n in due punti diversi(come è già stato fatto notare!) e nella variabile s.
    Non potendo modificare direttamente n per i suddetti motivi ha bisogno di una varibile di appoggio e che s sia impostata a zero all'interno del ciclo
    for ogni volta.
    
    for(n = 100; n <= 999; n++)
    {
    	number = n; // variabile di appoggio
    	s = 0;
    	while(n > 0)
    	{
    		// Scrivi qui il tuo codice
    	}
    }
    
  • Re: Esercizio sulle strutture di controllo

    La variabile di controllo del ciclo while è number e non n.
    Errore mio
Devi accedere o registrarti per scrivere nel forum
6 risposte