题解 | #杨辉三角的变形#
杨辉三角的变形
http://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43
找规律可:
//当n<3时,没有偶数,输出-1;
//当n为奇数时,第一个偶数位置在第二,输出2;
//当n为偶数且能被4整除时,第一个偶数位置在第三,输出3;
//当n为偶数但不能被4整除时,偶数位置在第四,输出4
笨拙做法:
package niuke0409;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int dp[][]=new int[n][2*n-1];
dp[0][0]=1;
for(int i=0;i<n;i++){
for(int j=0;j<2*(i+1)-1;j++){
if(i==0){
dp[i][j]=1;
}
else if(j==0){
dp[i][j]=dp[i-1][j];
}
else if(j==1){
dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
}
else{
dp[i][j]=dp[i-1][j-2]+dp[i-1][j-1]+dp[i-1][j];
}
}
}
for(int j=0;j<2*n-1;j++){
if(dp[n-1][j]%2==0){
System.out.println(j+1);
break;
}
if(j==2*n-2&&dp[n-1][j]%2!=0){
System.out.println(-1);
}
}
/* for(int i=0;i<n;i++){
for(int j=0;j<2*n-1;j++){
System.out.print(dp[i][j]+" ");
}
System.out.println("");
}*/
}
}
}
查看9道真题和解析