python123斐波纳契数列 ii
时间: 2023-05-31 17:20:49 浏览: 246
### 回答1:
斐波纳契数列是指从0和1开始,后面的每一项都是前面两项的和。例如:0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987、1597、2584、4181、6765、10946、17711、28657、46368、75025、121393、196418、317811、514229、832040、1346269、2178309、3524578、5702887、9227465、14930352、24157817、39088169、63245986、102334155、165580141、267914296、433494437、701408733、1134903170、1836311903、2971215073、4807526976、7778742049、12586269025、20365011074、32951280099、53316291173、86267571272、139583862445、225851433717、365435296162、591286729879、956722026041、1548008755920、2504730781961、4052739537881、6557470319842、10610209857723、17167680177565、27777890035288、44945570212853、72723460248141、117669030460994、190392490709135、308061521170129、498454011879264、806515533049393、1304969544928657、2111485077978050、3416454622906707、5527939700884757、8944394323791464、14472334024676221、23416728348467685、37889062373143906、61305790721611591、99194853094755497、160500643816367088、259695496911122585、420196140727489673、679891637638612258、1100087778366101931、1779979416004714189、2880067194370816120、4660046610375530309、7540113804746346429、12200160415121876738、19740274219868223167、31940434634990099905、51680708854858323072、83621143489848422977、135301852344706746049、218922995834555169026、354224848179261915075、573147844013817084101、927372692193078999176、1500520536206896083277、2427893228399975082453、3928413764606871165730、6356306993006846248183、10284720757613717413913、16641027750620563662096、26925748508234281076009、43566776258854844738105、70492524767089125814114、114059301025943970552219、184551825793033096366333、298611126818977066918552、483162952612010163284885、781774079430987230203437、1264937032042997393488322、2046711111473984623691759、3311648143516982017180081、5358359254990966640871840、8670007398507948658051921、14028366653498915298923761、22698374052006863956975682、36726740705505779255899443、59425114757512643212875125、96151855463018422468774568、155576970220531065681649693、251728825683549488150424261、407305795904080553832073954、659034621587630041982498215、1066340417491710595814572169、1725375039079340637797070384、2791715456571051233611642553、4517090495650391871408712937、7308805952221443105020355490、11825896447871834976429068427、19134702400093278081449423917、30960598847965113057878492344、50095301248058391139327916261、81055900096023504197206408605、131151201344081895336534324866、212207101440105399533740733471、343358302784187294870275058337、555565404224292694404015791808、898923707008479989274290850145、1454489111232772683678306641953、2353412818241252672952597492098、3807901929474025356630904134051、6161314747715278029583501626149、9969216677189303386214405760200、16130531424904581415797907386349、26099748102093884802012313146549、42230279526998466217810220532898、68330027629092351019822533679447、110560307156090817237632754212345、178890334785183168257455287891792、289450641941273985495088042104137、468340976726457153752543329995929、757791618667731139247631372100066、1226132595394188293000174702095995、1983924214061919432247806074196061、3210056809456107725247980776292056、5193981023518027157495786850488117、8404037832974134882743767626780173、13598018856492162040239554477268290、22002056689466296922983322104048463、35600075545958458963222876581316753、57602132235424755886206198685365216、93202207781383214849429075266681969、150804340016807970735635273952047185、244006547798191185585064349218729154、394810887814999156320699623170776339、638817435613190341905763972389505493、1033628323428189498226463599550283632、1672445759041379840132227571939789121、2706074082469569338358691171490072753、4378519841510949178490918743429861874、7084593923980518516849609914919934627、11463113765491467695340528628339776401、18547707689471986212190138543259711028、30010821454963453907530667171699487429、48558529144435440119720805714959298457、78569350599398894027251472886658785886、127127879743834334146972478801118584343、205697230343233228174223951687777370229、332825110087067562321196430488895954572、538522340430300790495420382176673324801、871347450517368352816616812665569279373、1409869790947669143312035591975590251174、2281217241465037496128652404641159530547、3691087032412706639440687996616749781721、5972304273877744135569340401257909312268、9663391306290450775010028397874659093989、15635695580168194910579318739122528416257、25399086886458645685589347136997187510246、41034782466626840596168665876119715926403、66433869353085486281758013013116903436649、107168651819712326877926478089336819163052、173602521172797813159684491102453722599701、280771172992510140037610969191790541762753、454373694165307953197295460294244264362454、735144867157818093234906429486034806125207、1188518561323126046432200881785273071482661、1923663428480944139667107311271307877607868、3112181989804070186099308193056580949090529、5035845418285014325766415504327888826698397、8148027408089084511865723697384479775788926、13163872826374098837672149281712328662477323、21311800234463183349537872979096808438266249、34475673060837282187210022260809137100743572、55787473295300465536747895239905945539009821、90263146356137747723957917500715082639753393、146040119151438213160505812740821828178863214、236303265507575960884463730241536910818616607、382343384659014174044969542982358738997479821、618646650166590134929433273223895649816096428、1004993036825604304979403814203258384816573249、1623639686992194449908837087427154034632679677、2628632723817798754888240901630412429449252926、4252272410809993204797077989057566464081932603、6880905134627791959685318890687978893531185529、11117187575437785134442326859715595347633188132、17998092710065577094127645750303574241164373661、29115280285503362228569972610019169588797561793、47113372995568939322697618360322743829961935454、76228653281072301551267590970341913418759497247、123541926376641140273565409030964657148921932701、199770579657713441824832999001306570567681430948、323312506034354582098398408032271227716603363649、523083085692068023923231407033577798284284794597、846395591726422606021629815065849025000888158246、1363472677414491637943867228093426827280171956843、2219868269140914243965497043159275852281060115089、3583340946555405881909364271252702679561232071932、5803209215696320125874861314411978531842292187021、9386550162251726007784225585664681211403524258953、15179759397918016123659036820076669783285876405974、24566309560169742131443262405741350994689400664927、39746068958087758255102299225818020777975277070901、64312378518257500386545561631559371772664677735828、104058447976145258741447360157277892950039154706729、168370826494402759127992921788837264722703832442557、272429274470548017869440281946115157672742987149286、440800100964950777997433203734952422395446819591843、713229375435498795866873485681067580068189806741129、1156024475400441579866306681418014006468633625335972、1869253850835940375733180167109081586536823432077101、3025278326236381955599486848527095593005457057413073、4894532177072322331332667015636177179542280489490174、7929810503308704286932153864163272772547737546903247、12814392640361026698224800829879419922020038046383421、20744103143669730985156954694042692694567775593286668、33558495784030757683381755523922112616587813639670089、54302698927700488668538710217964805311155589232956757、87861194711731246351920465741886917927743402872626846、142463793139631135220159475159851323938698692905483603、230324987851362381572079940901738241866442095778110449、372788780991993516792239416061589565805140788683594052、603113768843355898364319356963327807671582884461704501、975902549835349415156558773024917373476723673145298553、1579029312674701319528876130986240181146309554602009054、2554931862510050734685434904011157554623033227747307607、4133961175184752054214311034997397735769342782349316661、6688893037694802788909745939008555290392376010096624268、10812844272829544823174026924045963026181718792455910929、17401737310524347612083772863054518316574094802552535297、28214581583353892435257899787100481342755813595008446226、45616318893878240047341672650154999659329908397560981523、73830900477232132482699572437255481002085721992569427749、119447819871610272830341945987310680561115630290630409272、193278720348842405313041518424566161563201352283199837021、312726540220452678143383464411876842124316982573830246293、505005260569295083456425982836443003687518334857030083314、817731800789747761599809447248319845811835317430860329607、1322733061353042843058238437086766848497355651284892418921、2130464862142790604658047884335086694309190968715752748528、3453197923495833447716286321421853542806546620000645167449、5583662785638624052374334205756940237115737588716397915977、9036860709134457500090620527178793789922284208717043083426、14630533424703021562454994762915784027068001797433471079403、23667494133837479062545615290094577816990286006150514162829、38398027558540400625000610053010361844058287803583985242232、62065521692377879687546225343104939661048573809734599405061、100163049150718080312946835696215401305706361213418584947293、162228570843095959000493061039320340966754935023153184352354、262391620993814039313439896735535742272461296236571769299647、424620191836909998313932957774856083239216231259724953651001、686011812830724037627372854510391825511677527496296722950648、1111634007668637037946301817283245906757896751759027678603649、1797645810499361075573674671793637732269574279255324401554297、2909279818167998113529976489076883639027471031014352080157946、4706925628667359189103651160870521371297045310279676481712243、7616205446835357302633627659947405010324516341294028561870189、12363171015522736481747218870887926301621551621583715073562432、19979376462358093784380846530835331311946067962877743635432621、32342547477880830266128065401723257613567619584461458708995053、52321923940238924050508911932558588925513687547339102344427674、84664471418119754316636977334281846539081307131800561053422727、136486195958158478067845289766240235164794094979739463597850401、221150667376278232384482267100522081703875402111540024651273128、357636863334436710452327556866762316868669497091279488249123529、578787530710714942836809823967284398572544899202819512900396657、936424394045151653289137380834046715441214396294098001149520186、1515112924754863597127946206805334112014754298492918513051916843、2451537318800015250417083587639380827455968694787016514201437029、3966650243554878847545029794444714939470722993289935027253353872、6418187562354894097962113382084095766926691688076951541454790901、10394837845919752915577173146578870716397454621326856548788144773、16813025408274647013539286528662966483324146309303808090242935674、27207863254194499929116459675241837299721500930630664639031080447、44020888662469146942655746203904803783045647239934472729274016121、71228751916663646871772205879146641082767148170565137368305096568、115049040979932193914327952383851244565812895310599710297479612689、186277792896595840786100158262997885648580043481164847665784709257、301326833876528034700428110646849130214392938791764557963264321946、487604626773123875486528268909847015862973982272929405629049031203、788931460649651910186956379556696146077366921064694963592313353149、1276533084424774787672487646463541166948341904336622367222362387352、2065464545074426697859444026020237313025708825401317330814675740501、3341997629499201485531931672483778489974050729737939698037038127853、540746217457362818339137569850
### 回答2:
Python 123上关于斐波那契数列第二题要求使用递推的方式求解斐波那契数列,递推就是利用已知的前面几项推导出后面的项的方法。对于斐波那契数列,我们知道初始值是0和1,然后后面的每一项都是前面两项的和,因此我们可以使用循环来逐个求解。
在程序中,我们可以先定义两个变量分别来保存前一项和当前项的值,然后使用循环的方式不断更新它们的值,得到后面的数列。
具体来说,我们可以先定义两个变量a和b,然后将它们的值分别设为0和1,这样我们就可以把它们作为初始值。接着,我们可以使用一个for循环来不断地计算后面的数列,循环次数为n-1,因为前两项我们已经确定了。在循环体中,我们可以先将a和b的值分别保存到两个变量中,然后分别将它们的值更新为b和a+b,这样我们就可以得到后面的每一项的值了。最后,我们只需要将b的值输出即可。
下面是一份Python代码,用来求解斐波那契数列:
n = int(input())
a, b = 0, 1
if n == 1:
print(a)
elif n == 2:
print(b)
else:
for i in range(2, n):
temp = a
a = b
b = temp + b
print(b)
代码的前几行用来读入n的值以及初始化a和b的值,然后根据n的值来判断是否需要输出a或b的值。接着,我们使用一个for循环,循环变量i从2开始,因为前两项我们已经确定了。在循环体中,我们将a和b的值分别保存到temp和a中,然后将b的值更新为temp+b,这样我们就得到了后面的数列。最后,我们将b的值输出即可。
总的来说,斐波那契数列是一道非常经典的算法题,它可以帮助我们理解和掌握递推的思想,也可以锻炼我们的编程能力。在Python中,我们可以使用循环来逐个求解,也可以使用递归的方式来求解,不同的方法各有优缺点,需要根据具体情况来选择。
### 回答3:
斐波那契数列是一组在数学和计算机科学中常见的数列,它的前两个数都是 0 和 1,之后的每一个数都是前面两个数之和。在Python语言中,常用递归和循环两种方式来生成斐波那契数列。而Python123中的斐波那契数列ii,是斐波那契数列问题的一个扩展。
与斐波那契数列不同的是,在 Python123 的斐波那契数列ii 中,需要求给定n个元素的斐波那契序列中第i个数的值,同时需要将大数模 1e9+7 后的结果返回。这时,采用循环的方式来实现比递归更加高效。
格式化字符串是一个值得注意的细节,当遇到整型数字不足时前置0的需求时,格式化字符串f"{num}"是常用的解决方案,其中num表示要进行格式化的整数变量名称。在本题解中的"{'{:0>13d}'...}"也是格式化字符串的一种用法,其中{:0>13d}表示填充13个字符长度,不足的空位用0填充,而>的含义是使用右对齐,d的含义是代表传入参数为十进制数字。
在具体地实现中,需要首先构建一个列表存储生成的斐波那契数列,循环遍历直到生成第 i 个数,同时对数列元素取模,最终返回第 i 个数对 1e9+7 取模后的结果。以下是Python代码示例:
def fibonacci_number(n: int, i: int) -> int:
if n < 1 or i < 1: # 判断参数是否合法
return None
fib_list = [0, 1] # 初始化斐波那契数列的前两个数
while len(fib_list) < n: # 循环生成数列
fib_list.append(fib_list[-1] + fib_list[-2])
return int(f'{fib_list[i-1]:0>13d}'[-13:]) % int(1e9+7) # 取模
在本例中,首先通过判断参数是否合法来保证计算过程正确,然后初始化斐波那契数列的前两个数,利用循环生成 n 个数的斐波那契数列。接着使用f''字符串返回第 i 个数对 10^9+7 取模后的结果。
阅读全文