作者feeians (想买台日本睡觉机)
看板Flash
标题Re: 请问一下判断平年闰年
时间Wed Oct 20 12:36:40 2004
好像出现了有趣的逻辑盲点..讨论一下好了..^^
令A为 x%4==0 B为 x%100!=0 C为 x%400==0
那这里不管你是看成 (A&&B)||C 或 A&&(B||C) 都有一样的结果
=> A&&(B||C)=(A&&B)||(A&&C)=(A&&B)||C 因为 x%400=0则x%4必然等於0
而事实上程式会顺着看..也就是 (A&&B) ||C..也就是连问题也没有了..
e.g. 2000: (1&&0)||1 = 1 是闰年
1900: (1&&0)||0 = 0 是平年
※ 引述《feeians (想买台日本睡觉机)》之铭言:
: ※ 引述《LPH66 (Let Program Heal us....)》之铭言:
: : ※ 引述《andyjih (冬烘蠹鱼找自己N N)》之铭言:
: : : 我把我昨天做出来的放上来
: : : on (release) {
: : : if(x%4==0 && x%100!=0||x%400==0){
: : : x1="这是闰年";
: : : }else{
: : : x1="这是平年";
: : : }
: : 逻辑好像不太对
: : 2000年 它是闰年
: : 1900年则不是
: : 而你的程式都会说"这是平年"
: 推 Jedic:写法有问题,但是运算结果却无误 61.66.87.212 10/18
: 推 ificould:maybe flash的问题.. 程式还不够好.. 61.62.28.85 10/19
: 推 feeians:不是flash的问题..这逻辑拿到哪都可通... 210.68.18.37 10/19
: 推 ificould:原来如此.. ||的运算子执行优先於&& 61.62.37.87 10/19
||和&&的确是平行的阿..就像+和-一样..
不过关键在於.. 2+3-5 不用写成 (2+3)-(5) 呀!!
就像这里 (A&&B)||(C) 可以把括号拿掉一样
: → ificould:我以为他们两个是同级的咧 61.62.37.87 10/19
--
有爱牵手也勃起
没爱摸奶也不举
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.68.16.238