#include <stdio.h>
#include <math.h>
int main(void) {
int F, N, i;
/* Prova les 25 primeres */
for (i=0; i<25; i++) {
N = i;
printf("%3d bitlles", N);
/* Solució amb fòrmula . Cost O(1) */
printf(" fòrmula: %.2lf", 0.5*sqrt(1+8*N) - 0.5);
/* Solució amb iteració . Cost O(F) = O(arrel(N)) */
F = 0;
while (F < N) {
F++;
N = N - F;
}
printf(" iterant: %d files i sobren %d bitlles\n", F, N);
}
return 0;
}
El dia 30 de maig de 2017 a les 7:29, ALEJANDRO CASTAN SALINAS <
acastan@xxxxxxxx> ha escrit:
El dia 29 de maig de 2017 a les 19:17, Alejandro Castán Salinas <
acastan@xxxxxxxx> ha escrit:
I si a algú no li agraden les mates amb un únic bucle de dos instruccions
també es troba F. Quelcom semblant a:
F = 0;
i = 1;
while (i < N) {
N = N - i;
i++;
F++
}
printf("%d files i sobren %d bitlles\n", F, N);
Perdó, on dic
while (i < N)
vull dir
while (i <= N)
i com que F sempre val i-1 encara es pot resoldre amb menys instruccions
...
F = 0;
while (F < N) {
F++;
N = N - F;
}
printf("%d files i sobren %d bitlles\n", F, N);
Però a aquesta solució, com a la de la fòrmula matemàtica. no hi ha cap
estructura de dades, només un parell de variables