Fotolog

A través del espejo
2010-10-12: A través del espejo
¡La radio habla en binario!
2010-10-10: ¡La radio habla en binario!
Gigaminx (regalo por mi cumple)
2010-09-16: Gigaminx (regalo por mi cumple)
Trini en bici
2010-09-05: Trini en bici
Valporquero
2010-08-28: Valporquero
Mi bici nueva
2010-08-22: Mi bici nueva
Boda de Mario y Ana
2010-08-13: Boda de Mario y Ana
De cañones en Guara
2010-08-07: De cañones en Guara
Trini y Mari en Marbella
2010-08-05: Trini y Mari en Marbella
Trini y Chelo en Tabarca
2010-08-03: Trini y Chelo en Tabarca
Valid XHTML 1.1
Acceder
Volver a la lista de problemas

Extrapolation Using a Difference Table

326.c

#include <stdio.h>

int n;
int k;
int mat[10][10];

int
main(void) {
	int i,j;

	while (1) {
		scanf("%d", &n);
		if (n==0) {
			return 0;
		}
		for (i=0; i<n; i++) {
			scanf("%d", &mat[i][0]);
		}
		scanf("%d", &k);
		for (j=1; j<n; j++) {
			for (i=j; i<n; i++) {
				mat[i][j] = mat[i][j-1] - mat[i-1][j-1];
			}
		}

#if DEBUG
		for (i=0; i<n; i++) {
			for (j=0; j<n; j++) {
				printf(" %3d", mat[i][j]);
			}
			printf("\n");
		}
		printf("\n");
#endif

		for (i=0; i<k; i++) {
			for (j=n-2; j>=0; j--) {
				mat[n-1][j] += mat[n-1][j+1];
			}
		}
		printf("Term %d of the sequence is %d\n", n+k, mat[n-1][0]);
	}
}