搜索
您的当前位置:首页正文

《特殊时间》蓝桥省赛真题

来源:步旅网

//特殊时间
public class Test {
	static int day_month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

	// 检查日期D是否合法
	public static int check_D(int D) {
		int month = D / 100;
		int day = D % 100;
		if (month < 1 || month > 12)
			return 0;
		if (day < 1 || day > day_month[month])
			return 0;
		return 1;
	}

	// 检查小时H是否合法
	public static int check_H(int H) {
		int h = H / 100;
		int m = H % 100;
		if (h < 0 || h > 23)
			return 0;
		if (m < 0 || m > 59)
			return 0;
		return 1;
	}

	public static void main(String[] args) {
		int ans = 0;
		// 枚举第一个数字
		for (int a = 0; a <= 9; a++) 
			// 枚举第二个数字
			for (int b = 0; b <= 9; b++)
				if (a != b) {
					// 合法数量
					int N_Y = 4, N_D = 0, N_H = 0;
					int[] A = new int[] {a,a,a,a};
					// 枚举第四种情况aaab,aaba,abaa,baaa
					for (int i = 0; i < 4; i++) {
						A[i] = b;
						int number = 0;
						for (int j = 0; j < 4; j++) 
							number = number * 10 + A[j];
							N_D += check_D(number);
							N_H += check_H(number);
							A[i] = a;
						}
						ans += N_Y * N_D * N_H;
					}
					System.out.println(ans);
				}
		}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top