#include <stdio.h>
#define TEST_ARR(a) (\
printf("" #a " is %s\n", \
is_fib_array(a, sizeof(a) / sizeof(a[0])) ? "fib array" : "not a fib array"))
int is_fib_array(int *arr, size_t len)
{
size_t i;
if (len < 3)
return 0;
for (i = 2; i < len; i++) {
if (arr[i - 2] + arr[i - 1] != arr[i])
return 0;
}
return 1;
}
int main()
{
int arr0[] = { 1, 1 };
int arr1[] = { 1, 1, 2, 3, 5, 8, 13 };
int arr2[] = { 1, 1, 2, 3, 5, 8, 13, 21, 100 };
TEST_ARR(arr0);
TEST_ARR(arr1);
TEST_ARR(arr2);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFRFU1RfQVJSKGEpIChcCiAgICAgICAgcHJpbnRmKCIiICNhICIgaXMgJXNcbiIsIFwKICAgICAgICBpc19maWJfYXJyYXkoYSwgc2l6ZW9mKGEpIC8gc2l6ZW9mKGFbMF0pKSA/ICJmaWIgYXJyYXkiIDogIm5vdCBhIGZpYiBhcnJheSIpKQoKaW50IGlzX2ZpYl9hcnJheShpbnQgKmFyciwgc2l6ZV90IGxlbikKewogICAgc2l6ZV90IGk7CiAgICAKICAgIGlmIChsZW4gPCAzKQogICAgICAgIHJldHVybiAwOwogICAgCiAgICBmb3IgKGkgPSAyOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBpZiAoYXJyW2kgLSAyXSArIGFycltpIC0gMV0gIT0gYXJyW2ldKQogICAgICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIAogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCkKewogICAgaW50IGFycjBbXSA9IHsgMSwgMSB9OwogICAgaW50IGFycjFbXSA9IHsgMSwgMSwgMiwgMywgNSwgOCwgMTMgfTsKICAgIGludCBhcnIyW10gPSB7IDEsIDEsIDIsIDMsIDUsIDgsIDEzLCAyMSwgMTAwIH07CiAgICAKICAgIFRFU1RfQVJSKGFycjApOwogICAgVEVTVF9BUlIoYXJyMSk7CiAgICBURVNUX0FSUihhcnIyKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=