Codice dei programmi nella directory:
///File: speedrun.c
//Autore:XXXX - Data ultima modifica DD/MM/AA
//Breve descrizione del programma: programma vuoto
#include<stdio.h>
void priminumeri(int n) {
if (n ==0) return;
if (n == 1)
printf("1\n");
else if (n>1){ // se n > 1
printf("%d ", n);
priminumeri(n - 1);
}
else // se n < 1
{
priminumeri(-n);
}
}
int main() {
priminumeri(-23);
return 0;
}
///(Fine file: speedrun.c)
///File: fattoriale-compatto.c
//Autore: 4^B
//Breve descrizione del programma: Gara ricorsione fattoriale pił corto
#include<stdio.h>
//012345678901234567890123456789012345678901234567890
//int f(int n){if(n<=0)return 1;return n*f(n-1);} // 46
int f(int n){return (n?n*f(n-1):1;}// 34
// Da fare
int main()
{
int i;
for(i=0; i < 7; i++)
printf("Fattoriale di %d = %d\n",i,f(i));
return 0;
}
///(Fine file: fattoriale-compatto.c)
///File: FattorialeECompito.c
// Ricorsione
#include <stdio.h>
// tempo minimo 7 minuti, tempo medio 11 minuti, ricorsivo 15 secondi
/** Scrivi queste 4 funzioni usando la ricorsione*
0) 1+2+3+4+...n somma di n valori
1) 1-2+3-4+5-6.... +n
2) Somma degli n elementi del vettore v[]
3) Quanti elementi di un vettore v[] di dimensione n sono divisibili per k
Facoltativi:
4) Scrivere una printN(int n) che visualizza n sullo schermo senza usare
printf o fprintf
5) Compattare la funzione fattoriale in modo che stia su una
sola riga e con numero di caratteri <= 35
0123456789012345678901234567890123456789
int f(int n){XXXXXXXXXXXXXXXXXXXXX} // soluzione piu' corta
***/
int fattoriale(int n) // tempo 1 minuto per la codifica
{
if (n <= 0)
return 1;
return n * fattoriale(n-1);
}
int fattoriale2(int n) // fattoriale iterativo: tempo per la codifica minimo 7 minuti
{
int fatt;
for(fatt=1; n>0; n--)
fatt*=n;
return fatt;
}
int main()
{
int i;
int fatt;
for (i=0; i <=8; i++)
{
fatt=fattoriale(i);
printf("Fattoriale di %d = %d\n",i,fatt);
}
return 0;
}
///(Fine file: FattorialeECompito.c)
///File: MCD.c
//Autore:XXXX - Data ultima modifica DD/MM/AA
//Breve descrizione del programma: programma vuoto
#include<stdio.h>
/* renderla sicura (es. caso 0)*/
/* accorciarla ottimizzarla*/
int MCD(int a, int b) { // a >= b
if (a % b == 0) return b; // caso base
else {
int dep = a % b;
a = b;
b = dep;
return MCD(a, b);
}
}
int main() {
int a, b;
printf("Dammi a e b -->");
scanf("%d %d", &a, &b);
printf("Il MCD e' %d \n", MCD(a, b));
return 0;
}
///(Fine file: MCD.c)
///File: SommaElementi.c
#include <stdio.h>
int SommaElementi(int a[], int n) {
if (n < 1)
return 0;
return a[n - 1] + SommaElementi(a, n - 1);
}
int ricerca(int a[], int n, int x)
{
if(n == 0)
return -1;
else if(n > 0)
// da completare
}
int main() {
int a[] = {1, 2, 3, 4, 5,6};
int n = 6;
int x = 3;
int somma=SommaElementi(a, n);
printf("Somma= %d\n", somma);
printf("L' elemento %d e' in posizione %d", x, ricerca(a,n,x));
return 0;
}
///(Fine file: SommaElementi.c)