Ritorna alla pagina del corso.

Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.

01: /*
02:    Prendere in ingresso da tastiera un numero intero n e quindi
03:    stampare tutti i numeri interi presenti nell'intervallo [1,n] che
04:    sono anche cubi di altri numeri interi
05: */
06: 
07: #include<stdio.h>
08: #include<stdlib.h>
09: 
10: int main(int argc, char **argv){
11: 
12:   int n;
13:   printf("Inserisci un numero intero positivo: ");
14:   scanf("%d", &n);
15: 
16:   // approccio molto a forza bruta
17:   printf("Primo approccio\n");
18:   for(int x = 1; x <= n; ++x) // provo tutti i valori tra 1 e n estremi inclusi
19:   {
20:     for(int j = 1; (j*j*j) <= x; ++j) 
21:       //  provo tutti i valori per vedere se uno di questi e' cubo di x, mi fermo non appena il cubo di j e' piu' grande di x
22:       if( x == (j*j*j) )
23:         printf("Il valore %d e' cubo di %d\n", x, j);
24:   }
25: 
26:   // approccio piu' intelligente
27:   printf("Secondo approccio\n");
28:   // provo tutti i valori e ne calcolo il cubo, se il cubo in esame e' minore uguale di n allora lo stampo
29:   for(int x = 1; (x*x*x) <= n; ++x) // provo tutti i valori tra 1 e n estremi inclusi
30:     printf("Il valore %d e' cubo di %d\n", x*x*x, x);
31: 
32:   return 0;
33: }
34: 
35: