0011 迷人的斐波拉契數(shù)列怪蔑,數(shù)學(xué)到極致就是美里覆,編程同樣如此

斐波拉契數(shù)列,求第一百個(gè)數(shù)字

首先來做一下上節(jié)課的課后作業(yè):

輸出斐波拉契數(shù)列缆瓣,打印100個(gè)數(shù)字 .

提示:斐波拉契數(shù)列就是 1喧枷,1,2弓坞,3隧甚,5,8渡冻,13戚扳,21,34族吻,55帽借,89......? 這個(gè)數(shù)列從第3項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和

思路如下:

首先需要一個(gè)計(jì)數(shù)器變量n超歌,用來計(jì)數(shù)砍艾,while循環(huán)當(dāng)計(jì)數(shù)器大于100就退出循環(huán)

其次需要2個(gè)變量a和b用來存儲(chǔ)相鄰的2個(gè)數(shù),比如1和2握础,或者2和3辐董,或者3和5

然后需要一個(gè)變量x來計(jì)算a+b的結(jié)果

最后關(guān)鍵的一點(diǎn),需要利用變量賦值來將計(jì)算公式向后移動(dòng)一個(gè)數(shù)字禀综,a=b简烘,b=x,然后再次循環(huán)

核心代碼如下:

a=1

b=1

n=3

while c<=100:

? ? x=a+b

? ? a=b

? ? b=x

? ? n=n+1

為何n要從3開始呢定枷,因?yàn)榍懊?和1已經(jīng)是第一個(gè)和第二個(gè)數(shù)字了孤澎,所以后面從3開始計(jì)數(shù)

大家人腦模擬一下電腦,跟著程序邏輯一行一行往下走欠窒,記住每一個(gè)變量當(dāng)前的值是多少覆旭,也可以用紙筆記錄下來

全部程序如圖:

執(zhí)行結(jié)果如圖:


順便說一句,斐波拉契數(shù)列的別稱是黃金分割數(shù)列岖妄,也就是隨著數(shù)列項(xiàng)數(shù)的增加型将,前一項(xiàng)與后一項(xiàng)之比越來越逼近黃金分割的數(shù)值0.6180339887..…

所以說,數(shù)學(xué)到極致就是美荐虐,編程同樣如此......

已知2017/1/1是星期天七兜,輸出2017年每一天是星期幾

接下來,再做一個(gè)程序福扬,練習(xí)使用循環(huán)和判斷腕铸,輸出2017年的每一天分別是星期幾,輸出就用1-7分別表示星期一到星期天

到這里铛碑,請(qǐng)同學(xué)們停下來思考狠裹,如何設(shè)計(jì)程序邏輯,解決這個(gè)問題:




思考好了嗎汽烦?再想想涛菠,只有不停思考,練習(xí)撇吞,總結(jié)才會(huì)有提高

思路如下:

首先俗冻,要對(duì)2017年的每一天進(jìn)行循環(huán)

然后,循環(huán)當(dāng)中梢夯,要知道當(dāng)前是這一年里面的第幾天

再然后言疗,關(guān)鍵點(diǎn),根據(jù)第幾天颂砸,對(duì)7求余數(shù)噪奄,求余數(shù)的話python用%來計(jì)算,余數(shù)的值是從0到n-1人乓,例如:1%7=1,2%7=2,...6%7=6,7%7=0,8%7=1,9%7=2......

最后勤篮,因?yàn)?017年1月1日并不是正好星期一,所以需要增加一個(gè)偏移量來校正星期幾

最最后色罚,輸出星期幾的時(shí)候需要加1碰缔,因?yàn)檩敵鍪且?-7,但是求余的結(jié)果卻是0-6


程序設(shè)計(jì):

前面做過一個(gè)程序戳护,輸出了一年當(dāng)中每一天分別是什么星座金抡,可以利用這個(gè)程序的循環(huán)瀑焦,將判斷星座的程序修改為判斷星期的程序

打開上節(jié)課編寫的程序xingzuoall.py,另存為getweek2017.py梗肝,然后刪除掉注釋部分代碼榛瓮,刪除掉星座判斷部分代碼,剩下代碼如下:

然后巫击,在循環(huán)外面增加一個(gè)計(jì)數(shù)器禀晓,用來存儲(chǔ)是1年中的第幾天:

再然后,增加一個(gè)變量week計(jì)算是星期幾坝锰,并修改輸出內(nèi)容

week= ( n + 5 ) % 7 + 1

print "2017",month,day,week

這里的計(jì)算是如何做的呢

我們知道%7的結(jié)果范圍是0-6粹懒,然后后面+1,結(jié)果范圍就肯定是1-7顷级,關(guān)鍵當(dāng)中的 + 5 這個(gè)偏移量是怎么得來的

是通過2017-1-1是星期天等于7凫乖,并且是第1天,然后倒推算出來偏移量的愕把,推算邏輯如下拣凹,這個(gè)學(xué)過方程式的應(yīng)該能夠理解:

week = ( n + x ) % 7 + 1

week = 7

n = 1

7 = ( 1 + x ) % 7 + 1

6 = ( 1 + x ) % 7

6 = 1 + x

5 = x

完整的代碼如下:

計(jì)算結(jié)果如下:

關(guān)鍵是檢查第1天和最后1天看看是否正確。

輸出2016年每一天是星期幾

如果要計(jì)算2016年的每一天是星期幾恨豁,關(guān)鍵的一點(diǎn)是2016-1-1是星期幾嚣镜,計(jì)算出偏移量

大家根據(jù)前面計(jì)算偏移量的公式自己計(jì)算一下,先不要看下面的答案橘蜜,看看算的對(duì)嗎:

week = ( n + x ) % 7 + 1

week = 5

n = 1

5 = ( 1 + x ) % 7 + 1

4 = ( 1 + x ) % 7

4 = 1 + x

3 = x

修改一下程序菊匿,另存為getweek2016.py,先不要看下面的程序计福,自己看看結(jié)果對(duì)嗎

修改代碼如下:


大家仔細(xì)檢查跌捆,是否發(fā)現(xiàn)好像最后一天不對(duì)吧,那么再往前仔細(xì)檢查一下看看從哪一天不對(duì)了象颖,大家想想為何不對(duì)呢

最后發(fā)現(xiàn)佩厚,2016年是閏年,2月份是29天说订,那么抄瓦,同學(xué)們知道應(yīng)該修改哪里嗎?

應(yīng)該修改max=28這一行為max=29

保存代碼陶冷,再次運(yùn)行钙姊,這次結(jié)果就正確了

輸入一個(gè)年份,判斷輸出閏年或者平年

還記得0009課的課后作業(yè)嗎:

課后作業(yè):

輸入一個(gè)年份埂伦,判斷輸出閏年或者平年

提示1:閏年的規(guī)則煞额,能被4整除的年份是閏年,但要排除那些能被100整除并且不能被400整除的年份

提示2:判斷是否能整除,利用求余運(yùn)算符%膊毁,如果能被4整除胀莹,就是 x%4==0

例如:2016是閏年,2000年是閏年媚媒,2100年是平年

結(jié)果應(yīng)該如下才是正確的:

大家如果自己寫的代碼結(jié)果不對(duì)嗜逻,那么再次思考涩僻,重新修改缭召,不要急著看答案





程序如下:

大家再次思考一下,可以用一行判斷代碼實(shí)現(xiàn)嗎逆日?

提示一下嵌巷,可以用到not這個(gè)邏輯運(yùn)算符,注意not和and如果并列在一起的話室抽,是哪個(gè)優(yōu)先級(jí)更高搪哪,提高優(yōu)先級(jí)可以用()將需要優(yōu)先運(yùn)算的條件表達(dá)式括起來

程序如下:

?

課后作業(yè)

輸入一個(gè)年月日日期,輸出是星期幾

程序邏輯提示:

先確認(rèn)一個(gè)錨點(diǎn)坪圾,也就是1900-1-1為星期一=0晓折,然后計(jì)算輸入的年月日日期和1900-1-1相差多少天,根據(jù)相差天數(shù)對(duì)7求余兽泄,然后根據(jù)偏移量即可算出

關(guān)鍵點(diǎn)在于計(jì)算相差多少天漓概,因?yàn)檩斎氲娜掌诤?900年是跨多年的,需要用循環(huán)累計(jì)計(jì)算當(dāng)中每一年的總天數(shù)病梢,這個(gè)時(shí)候就需要判斷當(dāng)中每一年是否是閏年還是平年

程序需要的要素前面都已經(jīng)講過了胃珍,這個(gè)課后作業(yè)就是要將全部要素集成起來,還是有點(diǎn)難度哦蜓陌,大家加油觅彰!

往期教程

0001 零基礎(chǔ)的小白能學(xué)會(huì)編程嗎?

0002 真的嗎钮热,700元的電腦可以學(xué)會(huì)編程填抬?

0003 十分鐘組裝一臺(tái)電腦開始編程

0004 如何編寫人生的第一行代碼helloworld

0005 鍵盤打字如何練成像黑客一樣的飛速

0006 編程入門python語言之加法計(jì)算器

0007 編程入門python語言之四則運(yùn)算器

第一部分前7課小結(jié)和課程規(guī)劃說明及微信群主招募

0008 加減乘除也會(huì)算錯(cuò)?還要編寫程序測(cè)試隧期?

0009 如何編寫程序計(jì)算所屬星座飒责,一看就懂

0010 人生就像死循環(huán),只要不退出就要繼續(xù)運(yùn)行

因?yàn)榻坛淌窍盗薪坛萄崦耄昂箨P(guān)聯(lián)性非常強(qiáng)读拆,請(qǐng)大家按照微信公眾號(hào)的發(fā)布時(shí)間先后次序進(jìn)行閱讀。

微信公眾號(hào)里面直接輸入序號(hào)可以查看該序號(hào)課程鸵闪,例如輸入0001可以查看【0001 零基礎(chǔ)的小白能學(xué)會(huì)編程嗎檐晕?】

作者簡(jiǎn)介

學(xué)哥,二十年編程經(jīng)驗(yàn),歷任程序員辟灰,資深程序員个榕,技術(shù)經(jīng)理,項(xiàng)目經(jīng)理芥喇,產(chǎn)品經(jīng)理西采,系統(tǒng)架構(gòu)師,IT總監(jiān)继控。愛好篆刻械馆,閱讀,美食武通。

微信號(hào)簡(jiǎn)介

每天半小時(shí)零基礎(chǔ)學(xué)編程霹崎。大人可以學(xué),小孩也可以學(xué)冶忱。練打字尾菇,用軟件,寫文檔囚枪,做網(wǎng)站派诬,做App,編游戲链沼,數(shù)據(jù)庫(kù)默赂,玩硬件,寫程序忆植,3D打印放可,無人機(jī),機(jī)器人朝刊。

html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公眾號(hào)搜索:零基礎(chǔ)學(xué)編程耀里。

QQ群簡(jiǎn)介

歡迎大家加入QQ群 603559164 零基礎(chǔ)學(xué)編程,交流學(xué)習(xí)拾氓,共同進(jìn)步冯挎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咙鞍,隨后出現(xiàn)的幾起案子房官,更是在濱河造成了極大的恐慌,老刑警劉巖续滋,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翰守,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疲酌,警方通過查閱死者的電腦和手機(jī)蜡峰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門了袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人湿颅,你說我怎么就攤上這事载绿。” “怎么了油航?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵崭庸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我谊囚,道長(zhǎng)怕享,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任秒啦,我火速辦了婚禮熬粗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘余境。我一直安慰自己,他們只是感情好灌诅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布芳来。 她就那樣靜靜地躺著,像睡著了一般猜拾。 火紅的嫁衣襯著肌膚如雪即舌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天挎袜,我揣著相機(jī)與錄音顽聂,去河邊找鬼。 笑死盯仪,一個(gè)胖子當(dāng)著我的面吹牛紊搪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播全景,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼耀石,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了爸黄?” 一聲冷哼從身側(cè)響起滞伟,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炕贵,沒想到半個(gè)月后梆奈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡称开,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年亩钟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡径荔,死狀恐怖督禽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情总处,我是刑警寧澤狈惫,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站鹦马,受9級(jí)特大地震影響胧谈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荸频,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一菱肖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旭从,春花似錦稳强、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鸽素,卻和暖如春褒繁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馍忽。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工棒坏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遭笋。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓坝冕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親坐梯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子徽诲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容