枫林在线>>程序设计>>讨论区 [快速回复] [上一主题] [下一主题] | Algorithm/(算法) |
[235627] 主题: 通过生日判断星座的函数 |
作者: Numino |
标题:
![]() |
|
昵称: Numino(普天同庆) | 来自: 192.168.*.* | |
经验值: 25991 | 发贴时间: 2004年06月18日 17:44:47 (UTC +08:00) | |
等级: 登峰造极 | 长度: 1347字 | |
![]() |
int Aquarius=121; int Pisces=220; int Aries=321; int Taurus=421; int Gemini=522; int Cancer=622; int Leo=723; int Virgo=824; int Libra=924; int Scorpio=1024; int Sagittarius=1123; int Capricorn=1222; char *Constellation; Constellation="摩羯"; int GetConstellation(int month,int date) { int birth; birth=100*month+date; if(birth>=Aquarius) Constellation="水瓶"; else return; if(birth>=Pisces) Constellation="双鱼"; else return; if(birth>=Aries) Constellation="白羊"; else return; if(birth>=Taurus) Constellation="金牛"; else return; if(birth>=Gemini) Constellation="双子"; else return; if(birth>=Cancer) Constellation="巨蟹"; else return; if(birth>=Leo) Constellation="狮子"; else return; if(birth>=Virgo) Constellation="处女"; else return; if(birth>=Libra) Constellation="天秤"; else return; if(birth>=Scorpio) Constellation="天蝎"; else return; if(birth>=Sagittarius) Constellation="射手"; else return; if(birth>=Capricorn) Constellation="摩羯"; else return; } PS:以上代码没有在任何编译器上通过,也不符合C的规则,只是表达了一个思路 ~~~~~~~~~~~~~~~~~~~~ 不是我想要做什么,而是病人需要我做什么 |
|
========== * * * * * ==========
|
作者: little |
标题:
![]() |
|
昵称: 渺小 | 来自: 192.168.*.* | |
经验值: 7563 | 发贴时间: 2004年06月18日 20:11:19 (UTC +08:00) | |
等级: 精于此道 | 长度: 53字 | |
![]() |
其实可以每次判断为是的就直接return,那样更便于理解。 |
|
========== * * * * * ==========
|
作者: Numino |
标题:
![]() |
|
昵称: Numino(普天同庆) | 来自: 192.168.*.* | |
经验值: 26136 | 发贴时间: 2004年06月18日 20:37:09 (UTC +08:00) | |
等级: 登峰造极 | 长度: 228字 | |
![]() |
如果是12.31生日那么每一个if都是true ~~~~~~~~~~~~~~~~~~~~ 不是我想要做什么,而是病人需要我做什么 |
|
========== * * * * * ==========
|
作者: little |
标题:
![]() |
|
昵称: 渺小 | 来自: 192.168.*.* | |
经验值: 7627 | 发贴时间: 2004年06月19日 00:03:19 (UTC +08:00) | |
等级: 精于此道 | 长度: 59字 | |
![]() |
这个要看怎么编的了,其实和论坛经验值显示级别差不多的方法。 |
|
========== * * * * * ==========
|
作者: blogger |
标题:
![]() |
|
昵称: 雪夜独行 | 来自: 210.22.*.* | |
经验值: 280 | 发贴时间: 2004年07月10日 14:01:50 (UTC +08:00) | |
等级: 白手起家 | 长度: 547字 | |
![]() |
#楼主的思路不错:把生日看做一个30/31进制的数,处理其来概念非常简单,而且不需要算 生日在一年中的天数,也避免了润年的计算,很有创意。 #考虑到12/31的问题,可以做个优化,具体实现如下(在python2.3.2下测试通过): def get_constellation(month, date): dates = (21, 20, 21, 21, 22, 22, 23, 24, 24, 24, 23, 22) constellations = ("摩羯", "水瓶", "双鱼", "白羊", "金牛", "双子", "巨蟹", " 狮子", "处女", "天秤", "天蝎", "射手", "摩羯") if date < dates: return constellations else: return constellations print get_constellation(2, 27) |
|
========== * * * * * ==========
|
![]() ![]() |
Copyright © 2001-2025 枫林在线(www.FengLin.info) All Rights Reserved
时间显示基于用户时区设置:Asia/Shanghai (UTC +08:00)
页面运行使用41.42毫秒