社区
C语言
帖子详情
闰年算法问题
puzzle1986
2008-10-09 10:47:18
见得最多得算法是:
true = y%4 == 0 && y%100 != 0 || y%400 == 0
可是小学就学过只要年数y除以4没有余数就是闰年,为什么多出来那么多?(是算法的效率问题?)
还有个是在MOP上看到的,有这么一题:
main( )
{
int a = 1, b = 2;
printf( "%d", 1 + a/b ); /*把1 + a/b换成1.0 + a/b后,运算结果是0,前面是正常的1,为什么?我是在linux下用gcc编译的*/
}
...全文
675
10
打赏
收藏
闰年算法问题
见得最多得算法是: true = y%4 == 0 && y%100 != 0 || y%400 == 0 可是小学就学过只要年数y除以4没有余数就是闰年,为什么多出来那么多?(是算法的效率问题?) 还有个是在MOP上看到的,有这么一题: main( ) { int a = 1, b = 2; printf( "%d", 1 + a/b ); /*把1 + a/b换成1.0 + a/b后,运算结果是0,前面是正常的1,为什么?我是在linux下用gcc编译的*/ }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xianyuxiaoqiang
2008-10-10
打赏
举报
回复
小学老师水平比较差。
我小学老师也是错的。初中老师倒教的不错。润年就是按照该算法算的。
另外%d对应int型。后面1.0是float型,float和int相加结果为float,输出
时格式不匹配。想深入研究的话看看计算机原理中有关float的规约。
阿提饭
2008-10-10
打赏
举报
回复
你老师错了
hander_vip
2008-10-10
打赏
举报
回复
baidu知道上的:
关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。
zzhzhua
2008-10-10
打赏
举报
回复
楼上的同志已经解决了。
WEN2222
2008-10-09
打赏
举报
回复
你算一下1000年是闰年吗?
1.0是浮点型,1是整形,运算的时候会转化为浮点型,要用那个%f的
dayuanquan
2008-10-09
打赏
举报
回复
bool judge(int n)
{
return (n%4==0&&n%100!=0)||n%400==0;
}
phz1985
2008-10-09
打赏
举报
回复
[Quote=引用楼主 puzzle1986 的帖子:]
见得最多得算法是:
true = y%4 == 0 && y%100 != 0 || y%400 == 0
可是小学就学过只要年数y除以4没有余数就是闰年,为什么多出来那么多?(是算法的效率问题?)
还有个是在MOP上看到的,有这么一题:
main( )
{
int a = 1, b = 2;
printf( "%d", 1 + a/b ); /*把1 + a/b换成1.0 + a/b后,运算结果是0,前面是正常的1,为什么?我是在linux下用gcc编译的*/
}
[/Quote]
你老师教错了.
chlaws
2008-10-09
打赏
举报
回复
改1.0那就是类型提升到float类型 用%d会溢出 所以要改格式输出符
tabby198512
2008-10-09
打赏
举报
回复
应该是赋值问题吧!一个浮点型的数按照整型格式输出,因为所占的内存不一样,高位舍弃,所以就是0了
JDR77
2008-10-09
打赏
举报
回复
整百年要是400的倍数才算是闰年,所以公元1000年不是闰年。
四年一闰,百年不闰,四百年再闰
领扣LintCode
算法
问题
答案-766.
闰年
领扣LintCode
算法
问题
答案-766.
闰年
目录766.
闰年
题解鸣谢 766.
闰年
判断给出的年份 n 是否为
闰年
. 如果 n 为
闰年
则返回 true
闰年
是包含额外一天的日历年. 如果年份可以被 4 整除且不能被 100 整除 或者 可以被 400 整除, 那么这一年为
闰年
. 样例 1: 输入 : n = 2008 输出 : true 样例 2: 输入 : n = 2018 输出 : false 题解 public class Solution { /** * @p.
python百钱买百鸡
问题
算法
_好玩的Python:植树
问题
,平
闰年
,鸡兔同笼,百钱白鸡,属相
问题
...
Python用来解决日常生活中的小
问题
很容的。# 植树
问题
total = 1age = 1while total image.png# 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?# 穷举法# 列表推导式如果不理解,代码不容易懂# list = [(chicken, rabbit) for chicken in range(0,35) for r...
每日一练———C语言
算法
题--平年
闰年
问题
C语言
算法
题--平年
闰年
问题
概念一、平年、
闰年
的判断二、给出年、月、日,判断日期是否存在 概念 平年与
闰年
!!!(
闰年
比平年多一天,
闰年
二月29天,平年28天) 1. 普通
闰年
: 能被4整除,且不能被100整除为
闰年
。 2. 世纪
闰年
: 能被400整除为
闰年
。 一、平年、
闰年
的判断 题目:输入一个不大于 3000 的年份,判断其是否为 “
闰年
”. 程序框图: 程序示例: #include <stdio.h> int ma.
算法
之美----
闰年
问题
闰年
问题
--
算法
3题
闰年
的
算法
c语言三目运算,1021:
闰年
问题
关于if else 和 三目运算符 的思考
Description
闰年
(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为
闰年
。
闰年
共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。其产生的最根本的原因是:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropica...
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章