Photolog
Back to list of problems
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]);
}
}









