题解 | #杨辉三角的变形#不取巧C++解法

杨辉三角的变形

http://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        vector<vector<int>> v(n,vector<int>(2*n-1,0));
        v[0][n-1]=v[n-1][0]=v[n-1][2*n-2]=1;    //杨辉三角的顶角和两个底角比较特殊为1
        for(int i=1;i<n;i++)                    //第一行特殊处理,所以i从1开始
            for(int j=1;j<2*n-2;j++)            //最后一行两个底角特殊处理,所以j从1开始,且到2*n-2
                {
                    v[i][j]=v[i-1][j-1]+v[i-1][j]+v[i-1][j+1];
                }

        for(int j=0;j<2*n-1;j++)
        {
            if(v[n-1][j]!=0&&v[n-1][j]%2==0)  //如果有偶数的情况
            {
                cout<<j+1<<endl;
                break;
            }

            if(j>n-1&&v[n-1][j]==1)          //如果超过每行的一半,还等于1,说明到结尾了都没有偶数
            {
                cout<<-1<<endl;
                break;
            }
        }

    }
}
全部评论

相关推荐

ming_ri:“很抱歉,您的简历和我们当前的职位需求不是很匹配”
点赞 评论 收藏
分享
FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客企业服务