电影网站建设教程下载,大型建设网站,英语不好的做网站运营可以吗,网站建设流程案例为了解决这个问题#xff0c;我们需要遍历2022年的每一天#xff0c;并检查日期的每一位数字以查找顺子。下面是一个Java程序#xff0c;用于计算2022年中的顺子日期数量#xff1a;
public class Main {public static void main(String[] args) {int count 0; for (int…
为了解决这个问题我们需要遍历2022年的每一天并检查日期的每一位数字以查找顺子。下面是一个Java程序用于计算2022年中的顺子日期数量
public class Main {public static void main(String[] args) {int count 0; for (int day 1; day 365; day) { String date String.format(%d22%02d%02d, 20, 1 (day - 1) / 31, (day - 1) % 31 1); System.out.print(date.toString());if (isShunziDate(date)) { count; } } System.out.println(Total shunzi dates in 2022: count); } private static boolean isShunziDate(String date) { for (int i 0; i date.length() - 3; i) { int first date.charAt(i) - 0; int second date.charAt(i 1) - 0; int third date.charAt(i 2) - 0; if (second first 1 third second 1) { return true; } } return false; }
}在上面的代码中isShunziDate 方法检查给定的日期字符串是否包含顺子。我们遍历日期字符串的每一位并检查当前位、下一位和再下一位是否构成顺子即当前位1等于下一位下一位1等于再下一位。
main 方法则遍历2022年的每一天构造出对应的日期字符串并调用 isShunziDate 方法来检查。如果某一天的日期字符串包含顺子则将计数器 count 增加1。
最后程序输出2022年中顺子日期的总数。
请注意这个程序假设2022年每个月的天数是固定的即1月31天2月28天3月31天等这在通常情况下是成立的因为2022年不是闰年。如果需要更精确的处理例如考虑闰年2月有29天的情况可以改用java.time包中的LocalDate类来生成日期。
运行上述程序你将得到2022年中顺子日期的总数。你只需要提交这个整数作为答案即可。 解释String date String.format(%d022%02d%02d, 20, 1 (day - 1) / 31, (day - 1) % 31 1);
这行代码用于生成一个形如 2022MMDD 的日期字符串其中 MM 代表月份DD 代表日。这行代码是为了遍历2022年的每一天而不仅仅是考虑每个月的实际天数。
具体来说String.format 是一个用于格式化字符串的方法。在这个例子中它使用三个参数来生成一个字符串。 %d22%02d%02d 是格式字符串。 %d 表示一个整数会替换为后面提供的参数。22 是字面量直接包含在结果字符串中。%02d 表示一个至少两位的整数不足两位时前面用0填充。 20 是第一个 %d 的替换值因此它会直接输出为 20。 1 (day - 1) / 31 用于计算月份。 day - 1 是当前循环的索引从0开始减1是为了从1开始计数。(day - 1) / 31 实际上是将天数除以31一个月的最大天数从而得到月份。这里假设每个月都是31天这在实际情况中是不准确的但在这个特定问题中我们只需要一个从1到12的连续数字来表示月份因此这个简化是可行的。1 ... 是因为我们需要从1开始计数月份而不是从0开始。 (day - 1) % 31 1 用于计算日期。 (day - 1) % 31 使用模运算取余来得到当前天在“当前月”实际上是按31天一个周期计算的中的位置。 1 是为了从1开始计数日期而不是从0开始。
因此这行代码为2022年的每一天生成一个字符串即使它不是按照实际的月份天数来生成的。例如当 day 为32时生成的日期字符串将是 20220201尽管在现实中2月并没有32天。但是由于我们只关心顺子的存在性而不是日期的实际有效性这种简化是允许的。