#include <iostream>
int steps_up, steps_down;
int add_up(int x)
{
++steps_up;
if(x == 10)
return x;
return x + add_up(x + 1);
}
int add_down(int x)
{
++steps_down;
if(x == 1)
return x;
return x + add_down(x - 1);
}
int main()
{
using namespace std;
steps_up = 0;
steps_down = 0;
cout << "sum from left to right = " << add_up(1) << endl;
cout << "sum from left to right took " << steps_up << " steps." <<endl;
cout << "sum from right to left = " << add_down(10) << endl;
cout << "sum from right to left took " << steps_down << " steps." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IHN0ZXBzX3VwLCBzdGVwc19kb3duOwoKaW50IGFkZF91cChpbnQgeCkKewogICAgKytzdGVwc191cDsKICAgIGlmKHggPT0gMTApCiAgICAgIHJldHVybiB4OwogICAgcmV0dXJuIHggKyBhZGRfdXAoeCArIDEpOwp9CgppbnQgYWRkX2Rvd24oaW50IHgpCnsKICAgICsrc3RlcHNfZG93bjsKICAgIGlmKHggPT0gMSkKICAgICAgcmV0dXJuIHg7CiAgICByZXR1cm4geCArIGFkZF9kb3duKHggLSAxKTsKfQoKCmludCBtYWluKCkKewogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIHN0ZXBzX3VwID0gMDsKICAgIHN0ZXBzX2Rvd24gPSAwOwogICAgY291dCA8PCAic3VtIGZyb20gbGVmdCB0byByaWdodCA9ICIgPDwgYWRkX3VwKDEpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJzdW0gZnJvbSBsZWZ0IHRvIHJpZ2h0IHRvb2sgIiA8PCBzdGVwc191cCA8PCAiIHN0ZXBzLiIgPDxlbmRsOwogICAgY291dCA8PCAic3VtIGZyb20gcmlnaHQgdG8gbGVmdCA9ICIgPDwgYWRkX2Rvd24oMTApIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJzdW0gZnJvbSByaWdodCB0byBsZWZ0IHRvb2sgIiA8PCBzdGVwc19kb3duIDw8ICIgc3RlcHMuIiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=