<-- Torna alla lista delle soluzioni
Esercitazione 3
Esercizio 1
/* Scrivere un programma che, dato un numero naturale n, produca su una stessa riga i quadrati dei numeri naturali compresi tra 0 e 2n, e sulla riga successiva i cubi dei numeri naturali compresi tra 2n e 4n. */
#include <stdio.h>
int main() {
int n;
int i;
printf("Inserire il valore di n: ");
scanf(" %d", &n);
for (i = 0; i <= 2*n; i++) {
printf("%d ", i * i);
}
printf("\n");
for (i = 2*n; i <= 4*n; i++) {
printf("%d ", i * i * i);
}
printf("\n");
return 0;
}
Esercizio 2
/* Scrivere un programma che, dato un numero naturale n, produca su una stessa riga i numeri pari compresi tra -6n e 6n e sulla riga successiva i numeri dispari compresi tra -6n+1 e 6n-1. */
#include <stdio.h>
int main() {
int n;
int i;
printf("Inserire il valore di n: ");
scanf(" %d", &n);
if (n < 0) n = -n;
for (i = -6*n; i <= 6*n; i+=2) {
printf("%d ", i);
}
printf("\n");
for (i = -6*n + 1; i <= 6*n - 1; i+=2) {
printf("%d ", i);
}
printf("\n");
return 0;
}
Esercizio 3
/* Scrivere una funzione double potenza(double base, int esponente) che calcoli la potenza di base elevato all’esponente. Si assuma che base sia diverso da zero. (Si ricordi che a-b = (1/a)b). */
/* Versione ricorsiva */
double potenza(double base, int esponente) {
if(esponente < 0) {
esponente = -esponente;
base = 1/base;
}
if (esponente == 0)
return 1.0;
else
return base * potenza(base, esponente - 1);
}
/* Versione iterativa */
double potenza(double base, int esponente) {
int i;
double ris = 1.0;
if(esponente < 0) {
esponente = -esponente;
base = 1/base;
}
for(i = 0; i < esponente; i++)
ris *= base;
return ris;
}
