杨辉三角的变形【编程题】

原创 2017年01月03日 19:10:10

题目

描述

          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。

输入

输入一个int整数

输出

输出返回的int值

样例输入

4

样例输出

3

代码

这题毫无思路。。。看过大神的代码。。。我可以膜拜一下了
这题用递归写的真是太赞了~

#include <iostream>
using namespace std;
int C(int n,int k)
{
    if(k==1 || k==n*2-1)
        return 1;
    if (k<1 ||k>n*2-1)
        return 0;
    else
        return C(n-1,k-2)+C(n-1,k-1)+C(n-1,k);
}
int main()
{
    int N;
    cin>>N;
    for(int j=1; j<=2*N-1; j++)
    {
        if(C(N,j)%2==0)
        {
            cout<<j<<endl;
            break;
        }
        else if(j==2*N-1)
            cout<<"-1"<<endl;
    }
}

第二个代码。。。
大神用栈的思想一层一层来求。。。膜拜

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

int main()
{
    vector<int> current,next;
    int n;
    cin>>n;
    n--;//第一行没有偶数
    current.push_back(1);//最左边的1
    while(n--)
    {
        next.push_back(1);
        if(current.size()==1)//第二行
        {
            next.push_back(1);
        }
        else//中间的数
        {
            for(unsigned int i=0; i<current.size(); i++)
            {
                if(i==0)
                {
                    next.push_back(current[i]+current[i+1]);
                }
                else if(i<=current.size()-2)
                {
                    next.push_back(current[i]+current[i-1]+current[i+1]);
                }
                else
                {
                    next.push_back(current[i]+current[i-1]);
                }
            }
        }
        next.push_back(1);//最右边的1
        current.clear();
        current=next;
        next.clear();
    }
    unsigned int i;
    for(i=0; i<current.size(); i++)
    {
        if(current[i]%2==0)
        {
            cout<<i+1<<endl;
            break;
        }
    }

    if(i==current.size())
    {
        cout<<-1<<endl;
    }
    return 0;
}

这里写图片描述

版权声明:本文为博主原创文章,欢迎转载,分享是一种态度。

java语言实现杨辉三角的主要思路和代码

本人其实一开始不会编写这个杨辉三角,没啥思路,网上百度了一下,了解了大体思路,然后自己编写的,主要思想已经清楚了,首先就是给数组赋值,然后就是打印数组,赋值的关键点有一个开始的赋值判断,还有就是如何递...
  • gorilla574664557
  • gorilla574664557
  • 2015年04月29日 09:30
  • 9422

打印杨辉三角形(Pascal's triangle)——利用链式队列

打印杨辉三角形(Pascal’s triangle)——利用链式队列 1. 杨辉三角的概念 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。 将二项式(a+b)i展开...
  • cainv89
  • cainv89
  • 2016年05月31日 00:29
  • 4497

C语言用一位数组和二维数组打印杨辉三角

C语言用一位数组和二维数组打印杨辉三角
  • xiaofeige567
  • xiaofeige567
  • 2014年05月27日 21:29
  • 4982

[编程题]iNOC产品部-杨辉三角的变形

Talk is cheap, show me the code. 一、问题描述 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 11 4 ...
  • na_beginning
  • na_beginning
  • 2017年03月17日 15:53
  • 143

杨辉三角的变形

  • 2013年12月23日 23:46
  • 11KB
  • 下载

【华为OJ】【038-iNOC产品部-杨辉三角的变形】

【华为OJ】【算法总篇章】【华为OJ】【038-iNOC产品部-杨辉三角的变形】【工程下载】题目描述 1 1 1 1 1 2 3 2 1...
  • DERRANTCM
  • DERRANTCM
  • 2016年05月10日 05:51
  • 1271

庞果英雄会——杨辉三角的变形

题目详情          1      1   1  1   1  2   3  2  1 1 3  6   7  6  3  1 以上三角形的数阵,第一行只有一个数1, 以下每行的每个...
  • asd_wolf
  • asd_wolf
  • 2013年11月17日 23:03
  • 762

庞果网之杨辉三角的变形

题目详情          1      1   1  1   1  2   3  2  1 1  3  6   7  6  3  1 以上三角形的数阵,第一行只有一个数1, 以下每行的每...
  • SunnyYoona
  • SunnyYoona
  • 2013年11月24日 11:25
  • 2230

杨辉三角的变形 庞果网 (C/C++实现)

注:已通过测试 题目详情:          1      1   1  1   1  2   3  2  1 1  3  6  7  6  3  1 以上三角形的数阵,第一行只有一个数1...
  • chinaeran
  • chinaeran
  • 2014年02月11日 17:34
  • 1257

杨辉三角的变形问题ruby解法

class Trigle def first_even_number_position_of_line(line_number) line_array = [1] 2.upto(l...
  • hmilym1050636281
  • hmilym1050636281
  • 2013年11月24日 23:13
  • 739
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:杨辉三角的变形【编程题】
举报原因:
原因补充:

(最多只允许输入30个字)