用Java解决牛客网华为机试题目HJ53

tech2025-07-18  3

题目连接:https://www.nowcoder.com/questionTerminal/8ef655edf42d4e08b44be4d777edbf43

题目描述

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)

本题有多组输入数据,输入到文件末尾,请使用while(cin>>)等方式读入

输入描述:

 

输入一个int整数

输出描述:

 

输出返回的int值

package HJ; import java.util.*; public class HJ53 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); while (cin.hasNext()) { int id = -1; int a = cin.nextInt(); int b[][] = new int[a][1 + (a - 1) * 2]; for (int i = 0; i < a; i++) { for (int j = 0; j < 1 + (a - 1) * 2; j++) { if (i == 0) { if (j == 0) b[i][j] = 1; else b[i][j] = 0; } else { if (j == 0) b[i][j] = b[i - 1][j]; else if (j == 1) b[i][j] = b[i - 1][j] + b[i - 1][j - 1]; else b[i][j] = b[i - 1][j] + b[i - 1][j - 1] + b[i - 1][j - 2]; if (i == a - 1 && (b[i][j] % 2 == 0 && b[i][j] != 0)) { id = j + 1; break; } } } } System.out.println(id); } } }

 

最新回复(0)