[华为oj]iNOC产品部-杨辉三角的变形

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。

 1 #include <iostream>
 2 #include <deque>
 3
 4 using namespace std;
 5
 6 static deque<int> deInt;
 7
 8 void getOddPos(int count)
 9 {
10     count=count-1;
11
12     deInt.push_front(0);
13     deInt.push_front(0);
14     deInt.push_back(0);
15     deInt.push_back(0);
16
17     deque<int> temp;
18     for(int i=1;i<static_cast<int>(deInt.size())-1;i++)
19     {
20         int t=deInt.at(i-1)+deInt.at(i)+deInt.at(i+1);
21         if(count<=0)
22         {
23             if(t%2==0)
24             {
25                 cout<<i<<endl;
26                 return;
27             }
28         }
29         temp.push_back(t);
30     }
31     if(count<=0)
32     {
33         cout<<-1<<endl;
34         return;
35     }
36
37     deInt.clear();
38     deInt.insert(deInt.begin(),temp.begin(),temp.end());
39     temp.clear();
40     getOddPos(count);
41 }
42
43 int main()
44 {
45     deInt.push_back(1);
46     int r;
47     cin>>r;
48     if(r==1)
49         cout<<-1;
50     else
51     {
52         --r;
53         getOddPos(r);
54     }
55 }
时间: 2024-10-25 01:57:22

[华为oj]iNOC产品部-杨辉三角的变形的相关文章

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

[华为OJ][算法总篇章] [华为OJ][038-iNOC产品部-杨辉三角的变形] [工程下载] 题目描述 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

华为OJ平台——杨辉三角的变形

1 import java.util.Scanner; 2 3 /** 4 * 杨辉三角的变形 5 *第一行为1,后面每一行的一个数是其左上角到右上角的数的和,没有的 6 *记为0 7 * 1 8 * 1 1 1 9 * 1 2 3 2 1 10 * 1 3 6 7 6 3 1 11 * 1 4 10 16 19 16 10 4 1 12 * 1 5... 13 *求第x行的第一个偶数是第几个 14 * 15 */ 16 public class YangHui { 17 18 public s

第14周OJ平台项目——杨辉三角

问题及代码 #include <iostream> #include <string> using namespace std; int main() { int a[30][30],n,x,y; cin>>n; for(x=0; x<n; x++) { a[x][0]=1; a[x][x]=1; } for(x=2; x<n; x++) for(y=1; y<x; y++) a[x][y]=a[x-1][y-1]+a[x-1][y]; for(x=0

华为OJ——iNOC产品部--完全数计算

题目描述 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数. 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身. 例如:28,它有约数1.2.4.7.14.28,除去它本身28外,其余5个数相加,1+2+4+7+14=28. 给定函数count(int n),用于计算n以内(含n)完全数的个数.计算范围, 0 < n <= 500000 返回n以内完全数的个数.异常情况返回-1 输入描述: 输入一个数字 输出描述: 输出完全数的个数 输入例

第十四周OJ项目——杨辉三角

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:李晓凯 * 完成日期:2014年 11 月 27 日 * 版 本 号:v1.0 * * 问题描述:根据二维数组输出杨辉三角 * 输入描述:输入一个整数确定行和列数 * 程序输出:输出杨辉三角 */ #include <iostream> using namespace std; int main() { int i,j,n; in

Pascal&#39;s Triangle 2 杨辉三角之二

Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3,3,1]. Note:Could you optimize your algorithm to use only O(k) extra space? 杨辉三角想必大家并不陌生,应该最早出现在初高中的数学中,其实就是二项式系数的一种写法. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1

LeetCode (13) Pascal&#39;s Triangle (杨辉三角 )

题目描述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return 从第三行开始,每行除了最左边和最右边两个数为1,其他数字都是上一行中相邻两个数字之和.根据上述规则可以写出下面的代码: class Solution { public: vector<vector<int> > generateRow1() { vector<in

杨辉三角

1 package com.llh.demo; 2 3 /** 4 * 杨辉三角 5 * 6 * @author llh 7 * 8 */ 9 public class Test { 10 /* 11 * 杨辉三角 12 */ 13 public static void main(String[] args) { 14 int[] a = new int[11]; 15 int num = 1; 16 // 17 for (int i = 1; i <= 10; i++) { 18 for (i

杨辉三角实例菱形实例

杨辉三角实例 public class Hui { public static void main (String [] args){ int [][] a =new int [10][10]; for(int i=0;i<a.length;i++){ for(int j=0;j<=i;j++){ if(j==0||i==j){ System.out.print(" "+(a[i][j]=1)); }else {a[i][j]=a[i-1][j-1]+a[i-1][j];