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: