题解 | #杨辉三角的变形#
杨辉三角的变形
http://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
#include<iostream> #include<vector> #include<math.h> using namespace std; //直接建立两个2*n数组,一个是临时数组,一个是结果数组 //因为具体数字会很大,所题目只问被2整除的数,直接取 个位 来存储即可 int main() { int MOD= 10; int n; while(cin>>n) { if(n<3) { cout<<-1<<endl; } else { vector<int> ans(2*n,1); vector<int> temp(2*n,1); int i=3; while(i<=n) { temp[2]=(ans[1]+ans[2])%10; temp[2*(i-1)]=temp[2]; for(int j=3;j<2*(i-1);j++) { temp[j]=(ans[j]+ans[j-1]+ans[j-2])%10; } ans=temp; i++; } for(i =1;i<2*n-1;i++) { if(ans[i] %2 ==0) { cout<<i<<endl; break; } } } } return 0; } // #include<iostream> // using namespace std; // //首个偶数在该行第几个的规律: -1 -1 (2 3 2 4)···(2 3 2 4) // int main(){ // int num; // while(cin>>num){ // if(!num||num==1||num==2) cout<<-1<<endl; // else if(num&1) cout<<2<<endl; // else if(num%4) cout<<4<<endl; // else cout<<3<<endl; // } // return 0; // }