当前位置: 首页 > news >正文

蓝桥杯:1.特殊日期(Java)

题目描述

对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。
请问从1900年1月1日至9999年12月31日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。
例如,2022年11月13日满足要求,因为2+0+2+2=(1+1)+(1+3)。
请提交满足条件的日期的总数量。

答案提交:

这是—道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输出:

70910

代码实现:

public class Main{public static void main(String[] args) {int cnt = 0;//不同月份的天数不同int[] days = new int[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};for (int i = 1900; i <= 9999; i++) {//年:i//判断是否是闰年:(能被4整除但不能被100整除)或者(能被400被整除)if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {days[2] = 29;//如果是润年:二月份为29天} else {days[2] = 28;}for (int j = 1; j <= 12; j++) {//月:jfor (int k = 1; k <= days[j]; k++) {//日:k//计数:年份数位之和 是否等于 月份和天数的数位之和if (sum(i) == sum(j) + sum(k)) {cnt++;}}//k}//j}//i//输出System.out.println(cnt);}/*** 计算任意一个整数的数位之和** @param n 整数* @return 返回数位之和*/public static int sum(int n) {int res = 0;//结果while (n != 0) {//原数为0时,跳出循环res += n % 10;//取个数数字累加n = n / 10;//原数除10}return res;}
}
http://www.lryc.cn/news/285761.html

相关文章:

  • 服务异步通讯之 SpringAMQP【微服务】
  • LED闪烁
  • php array_diff 比较两个数组bug避坑 深入了解
  • c++中STL的vector简单实现
  • C# 更改Bitmap图像色彩模式
  • 5.2 基于深度学习和先验状态的实时指纹室内定位
  • AIGC时代高效阅读论文实操
  • 对网站进行打点(不要有主动扫描行为)
  • 502. IPO(贪心算法+优先队列/堆)
  • 设计模式篇---中介者模式
  • 双端Diff算法
  • react+antd,Table表头文字颜色设置
  • 2024年1月18日Arxiv最热NLP大模型论文:Large Language Models Are Neurosymbolic Reasoners
  • 服务限流实现方案
  • 【RTOS】快速体验FreeRTOS所有常用API(1)工程创建
  • Red Hat Enterprise Linux 8.9 安装图解
  • vcruntime140.dll文件修复的几种常见解决办法,vcruntime140.dll丢失的原因
  • SpringCloud Alibaba 深入源码 - Nacos 分级存储模型、支撑百万服务注册压力、解决并发读写问题(CopyOnWrite)
  • 算法训练营Day45
  • 【Redis漏洞利用总结】
  • SPI 动态服务发现机制
  • 【C++进阶07】哈希表and哈希桶
  • Go 语言实现冒泡排序算法的简单示例
  • JAVA 学习 面试(五)IO篇
  • vue3相比vue2的效率提升
  • web terminal - 如何在mac os上运行gotty
  • 机械设计-哈工大课程学习-螺纹连接
  • ai绘画|stable diffusion的发展史!简短易懂!!!
  • 水塘抽样算法
  • easyui渲染隐藏域<input type=“hidden“ />为textbox可作为分割条使用