1
1 1 1
1 2 3 2 1
1 3 6 7 6 3 1
1 4 10 16 19 16 10 4 1
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3。
输入n(n <= 1000000000)
输入描述:
输入一个int整数
输出描述:
输出返回的int值
输入例子:
4
输出例子:
3
为肩上两数加上左肩的左边那数
#include <iostream>
using namespace std;
int fun(int n,int i)
{
if (i<1 || i>n * 2 - 1)
return 0;
else if (i == 1 || i == n * 2 - 1)
return 1;
else
return fun(n - 1, i - 2) + fun(n - 1, i - 1) + fun(n - 1, i);
}
int main()
{
int num;
while (cin >> num)
{
if (num == 1 || num == 2)
{
cout << "-1" << endl;
}
else
{
int k;
for (int i = 1; i <= num ; i++)
{
k = fun(num, i);
if (k % 2 == 0)
{
cout << i << endl;
break;
}
}
}
}
return 0;
}