首页 > 代码库 > 华为初级——iNOC产品部:杨辉三角形的变形
华为初级——iNOC产品部:杨辉三角形的变形
源程序:
#include<iostream> using namespace std; int main() { int n; cin>>n; int a[100][100]; for(int i=0;i<n;i++) { a[i][0]=1; a[i][i*2]=1; } a[1][1]=1; for(int j=2;j<n;j++) { a[j][1]=a[j-1][0]+a[j-1][1]; a[j][j*2-1]=a[j-1][(j-1)*2]+a[j-1][(j-1)*2-1]; for(int k=2;k<j*2-1;k++) { a[j][k]=a[j-1][k-2]+a[j-1][k-1]+a[j-1][k]; } } int flag; for(int j=0;j<=(n-1)*2;j++) { flag=1; if(a[n-1][j]%2==0) { cout<<j+1<<endl; flag=0; break; } } int defa=-1; if(flag)cout<<defa<<endl; /* for(int i=0;i<n;i++) { for(int j=0;j<=i*2;j++) { cout<<a[i][j]<<'\t'; } cout<<endl; } */ return 0; }运行结果:
总结:这道题目的关键在于求出这个变形的杨辉三角形。其实题目的描述有很大问题,但是已经给出了变形了的杨辉三角形,所以,可以根据例出来的三角形来写出程序。
首先:写出求杨辉三角形的程序:每一行的第一个数和最后一个数都是1;第二行的第二个数是1,;从第三行开始,每一行的第二个数是前一行的第一个数与第二个数之和,每一行的倒数第二个数是前一行的倒数第一个数与倒数第二个数的和。
然后:求出第n行的第一个偶数出现的位置。
注意:如果这一行没有偶数,则输出-1。
这道题目不是很难~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。