#include <iostream>
using namespace std;
//non-recursive
void diff(int items[], int count)
{
if (count > 0)
{
do
{
for (int n=0; n<count; n++)
{
cout << items[n] << " ";
items[n]=abs(items[n]-items[n+1]);
}
cout << "\n";
}
while (--count > 0);
}
}
//recursive
void diff1(int items[], int count)
{
if (count > 0)
{
for (int n=0; n<count; n++)
{
cout << items[n] << " ";
items[n]=abs(items[n]-items[n+1]);
}
cout << "\n";
diff1(items, --count);
}
}
int main()
{
int user_input[]={1,5, 13, 16, 17};
diff(user_input, 5);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vbm9uLXJlY3Vyc2l2ZQp2b2lkIGRpZmYoaW50IGl0ZW1zW10sIGludCBjb3VudCkKewogICAgaWYgKGNvdW50ID4gMCkKICAgIHsKICAgICAgICBkbwogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgbj0wOyBuPGNvdW50OyBuKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgaXRlbXNbbl0gPDwgIiAiOwogICAgICAgICAgICAgICAgaXRlbXNbbl09YWJzKGl0ZW1zW25dLWl0ZW1zW24rMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgIlxuIjsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKC0tY291bnQgPiAwKTsKICAgIH0KfQoKLy9yZWN1cnNpdmUKdm9pZCBkaWZmMShpbnQgaXRlbXNbXSwgaW50IGNvdW50KQp7CiAgICBpZiAoY291bnQgPiAwKQogICAgewogICAgICAgIGZvciAoaW50IG49MDsgbjxjb3VudDsgbisrKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCBpdGVtc1tuXSA8PCAiICI7CiAgICAgICAgICAgIGl0ZW1zW25dPWFicyhpdGVtc1tuXS1pdGVtc1tuKzFdKTsKICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgICAgICBkaWZmMShpdGVtcywgLS1jb3VudCk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW50IHVzZXJfaW5wdXRbXT17MSw1LCAxMywgMTYsIDE3fTsKICAgIAogICAgZGlmZih1c2VyX2lucHV0LCA1KTsKCiAgICByZXR1cm4gMDsKfQo=