华为oj:

/*

                   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。*/
从第三行开始规律为偶数位置 2 3 2 4 的变化

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    int x;
    cin >> x;
    if (x < 3)cout<<-1;
    else if (x % 4==3||x%4==3) cout<<2;
    else  if (x % 4 == 0) cout << 3;
    else cout << 4;
    return 0;
}

参考代码 http://blog.csdn.net/SunnyYoona/article/details/16917447

你可能感兴趣的:(华为oj:)