|
本帖最后由 exv 于 2014-12-6 12:58 編輯
看了論壇中幾個(gè)有農(nóng)歷的時(shí)鐘程序,無一例外使用查表法實(shí)現(xiàn)的,且只能查上下100年(因?yàn)镈S1302只有上下一百年)。
看過莆田第十中學(xué)許劍偉老師的農(nóng)歷算法,可實(shí)現(xiàn)上下五千年農(nóng)歷的計(jì)算(含節(jié)氣),
與主函數(shù)直接相關(guān)的C代碼就有6000余行;
關(guān)于日月星辰軌道計(jì)算的代碼有數(shù)十組,
每一組換算往往涉及幾十個(gè)64位double。
不知道51單片機(jī)在 合理 配置的情況下,能否實(shí)現(xiàn)這樣的計(jì)算?
如果不行,實(shí)現(xiàn)這一功能的最低配置是?
許劍偉老師的代碼這兒就不貼了(估計(jì)也貼不下),百度下 莆田第十中學(xué)許劍偉老師 即可。
51hei人才濟(jì)濟(jì),下面這段計(jì)算圓周率的代碼大家應(yīng)該非常熟悉,古人幾十本書還沒說清的一兩行就搞定了:- long a=10000,b,c=2800,d,e,f[2801],g;
- void main(){for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c-=14,cout<<e+d/a,e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}
復(fù)制代碼
古人制農(nóng)歷最多也就是算盤,難道 51單片機(jī) 真敵不過古人算盤?
另外,許老師的日歷程序除了可定農(nóng)歷日期/節(jié)氣,還可依此結(jié)合設(shè)定的經(jīng)緯度換算出每天的日落日出,非常實(shí)用。
|
|