# 【思路】

## 标算：

${x}^{2}-d\cdot {y}^{2}=-1\to x+y\cdot \sqrt{d}=\left(a+b\cdot \sqrt{d}{\right)}^{2n+1}$$x^2-d\cdot y^2=-1 \rightarrow x+y\cdot \sqrt{d}=(a+b\cdot \sqrt{d})^{2n+1}$

$x=\frac{\left(1+\sqrt{d}{\right)}^{2n+1}+\left(1-\sqrt{d}{\right)}^{2n+1}}{2}:n\in {N}^{\ast }$$x=\frac{(1+\sqrt{d})^{2n+1}+(1-\sqrt{d})^{2n+1}}{2}:n\in N^*$

${a}^{2}+a=2{b}^{2}+2b$$a^2+a=2b^2+2b$

$\to 4{a}^{2}+4a=8{b}^{2}+8b$$\rightarrow 4a^2+4a=8b^2+8b$

$\to 4{a}^{2}+4a+1=8{b}^{2}+8b+2-1$$\rightarrow 4a^2+4a+1=8b^2+8b+2-1$

$\to \left(2a+1{\right)}^{2}=2\left(2b+1{\right)}^{2}-1$$\rightarrow (2a+1)^2=2(2b+1)^2-1$

$\to \left(2a+1{\right)}^{2}-2\left(2b+1{\right)}^{2}=-1$$\rightarrow (2a+1)^2-2(2b+1)^2=-1$

$x=\frac{\left(1+\sqrt{2}{\right)}^{2n+1}+\left(1-\sqrt{2}{\right)}^{2n+1}}{2}:n\in {N}^{\ast }$$x=\frac{(1+\sqrt{2})^{2n+1}+(1-\sqrt{2})^{2n+1}}{2}:n\in N^*$

## [2018.1.27] 补记：

${a}_{n}=6\cdot {a}_{n-1}-{a}_{n-2}+2$

${X}_{n}=\frac{\left(1+\sqrt{2}{\right)}^{2n+1}+\left(1-\sqrt{2}{\right)}^{2n+1}}{2}$$X_n=\frac{(1+\sqrt{2})^{2n+1}+(1-\sqrt{2})^{2n+1}}{2}$

${A}_{n}=\frac{{X}_{n}-1}{2}↔{X}_{n}=2\cdot {A}_{n}+1$$A_n=\frac{X_n-1}{2} \leftrightarrow X_n=2\cdot A_n+1$

$\left\{{X}_{n}\right\}$$\{X_n\}$显然是个线性递推式的通项公式。

${X}_{n}=\frac{1+\sqrt{2}}{2}\cdot \left(3+2\sqrt{2}{\right)}^{n}+\frac{1-\sqrt{2}}{2}\cdot \left(3-2\sqrt{2}{\right)}^{n}$$X_n=\frac{1+\sqrt{2}}{2}\cdot(3+2\sqrt{2})^n+\frac{1-\sqrt{2}}{2}\cdot(3-2\sqrt{2})^n$

$\left(2{A}_{n}+1\right)=6\cdot \left(2{A}_{n-1}+1\right)-\left(2{A}_{n-2}+1\right)\to {A}_{n}=6\cdot {A}_{n-1}-{A}_{n-2}+2$$(2A_n+1)=6\cdot (2A_{n-1}+1)-(2A_{n-2}+1) \rightarrow A_n=6\cdot A_{n-1}-A_{n-2}+2$

${A}_{n}=6\cdot {A}_{n-1}-{A}_{n-2}+2$$A_n=6\cdot A_{n-1}-A_{n-2}+2$ 这个东西显然是可以直接递推的对吧，高精度一下就可以稳AC。

MJX大佬现场其实就想出了这个线性递推式！他想出的是：

${A}_{n}=5{A}_{n-1}+5{A}_{n-2}-{A}_{n-3}+4$$A_n=5A_{n-1}+5A_{n-2}-A_{n-3}+4$

${A}_{n}=6{A}_{n-1}-{A}_{n-2}+2$$A_n=6A_{n-1}-A_{n-2}+2$

$\to {A}_{n}=\left(5{A}_{n-1}+{A}_{n-1}\right)-{A}_{n-2}+2$$\rightarrow A_n=(5A_{n-1}+A_{n-1})-A_{n-2}+2$

$\to {A}_{n}=5{A}_{n-1}+\left(6{A}_{n-2}-{A}_{n-3}+2\right)-{A}_{n-2}+2$$\rightarrow A_n=5A_{n-1}+(6A_{n-2}-A_{n-3}+2)-A_{n-2}+2$

$\to {A}_{n}=5{A}_{n-1}+5{A}_{n-2}-{A}_{n-3}+4$$\rightarrow A_n=5A_{n-1}+5A_{n-2}-A_{n-3}+4$

[2018.1.27] 补记毕。

## 考场实用做法：

${a}^{2}+a=2{b}^{2}+2b$$a^2+a=2b^2+2b$

$2{b}^{2}+2b-\left({a}^{2}+a\right)=0$$2b^2+2b-(a^2+a)=0$

$b=\frac{-2+\sqrt{4+8\left({a}^{2}+a\right)}}{4}=\frac{-1+\sqrt{1+2{a}^{2}+2a}}{2}$$b=\frac{-2+\sqrt{4+8(a^2+a)}}{4}=\frac{-1+\sqrt{1+2a^2+2a}}{2}$

> 3       ,
> 20      , 6.6666666666666666666666666666667
> 119     , 5.95
> 696     , 5.8487394957983193277310924369748
> 4059    , 5.8318965517241379310344827586207
> 23660   , 5.8290219265829021926582902192658
> 137903  , 5.8285291631445477599323753169907
> 803760  , 5.8284446313713262220546326040768
> 4684659 , 5.8284301283965362794864138548821

（逗号右面的数是这一行的数和上一行的数的比值。）

# 【代码】

## （标算）python高精度打表版本

# -*- encoding: gb2312 -*-

from decimal import Decimal
from decimal import getcontext

f = open("data.txt","w")
getcontext().prec = 200 #设置精度位数

for i in range(1,300):
d = Decimal('2') ** Decimal('0.5')
t1 = Decimal('1') + d
t2 = Decimal('1') - d
p = Decimal('2') * Decimal(str(i)) + Decimal('1')
x = ( (t1)**p + (t2)**p  ) / Decimal('2')
a = (x - Decimal('1')) / Decimal('2')
print >>f,'\"'+str(long(a + Decimal('0.5')))+'\"',","
print i," "
if a>=10 ** 150 :
break
f.close()

#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

string val[]={
"3" ,
"20" ,
"119" ,
"696" ,
"4059" ,
"23660" ,
"137903" ,
"803760" ,
"4684659" ,
"27304196" ,
"159140519" ,
"927538920" ,
"5406093003" ,
"31509019100" ,
"183648021599" ,
"1070379110496" ,
"6238626641379" ,
"36361380737780" ,
"211929657785303" ,
"1235216565974040" ,
"7199369738058939" ,
"41961001862379596" ,
"244566641436218639" ,
"1425438846754932240" ,
"8308066439093374803" ,
"48422959787805316580" ,
"282229692287738524679" ,
"1644955193938625831496" ,
"9587501471344016464299" ,
"55880053634125472954300" ,
"325692820333408821261503" ,
"1898276868366327454614720" ,
"11063968389864555906426819" ,
"64485533470821007983946196" ,
"375849232435061491997250359" ,
"2190609861139547943999555960" ,
"12767809934402226172000085403" ,
"74416249745273809088000956460" ,
"433729688537240628356005653359" ,
"2527961881478169961048032963696" ,
"14734041600331779137932192128819" ,
"85876287720512504866545119809220" ,
"500523684722743250061338526726503" ,
"2917265820615946995501486040549800" ,
"17003071238972938722947577716572299" ,
"99101161613221685342183980258883996" ,
"577603898440357173330156303836731679" ,
"3366522229028921354638753842761506080" ,
"19621529475733170954502366752732304803" ,
"114362654625370104372375446673632322740" ,
"666554398276487455279750313289061631639" ,
"3884963735033554627306126433060737467096" ,
"22643228011924840308557008285075363170939" ,
"131974404336515487224035923277391441558540" ,
"769203198007168083035658531379273286180303" ,
"4483244783706493010989915264998248275523280" ,
"26130265504231789982903833058610216366959379" ,
"152298348241684246886433083086663049926232996" ,
"887659823945873691335694665461368083190438599" ,
"5173660595433557901127734909681545449216398600" ,
"30154303748655473715430714792627904612107953003" ,
"175752161896499284391456553846085882223431319420" ,
"1024358667630340232633308608283887388728479963519" ,
"5970399843885542111408395095857238450147448461696" ,
"34798040395682912435817061966859543312156210806659" ,
"202817842530211932503493976705300021422789816378260" ,
"1182109014785588682585146798264940585224582687462903" ,
"6889836246183320163007386812884343489924706308399160" ,
"40156908462314332295459174079041120354323655162932059" ,
"234051614527702673609747657661362378636017224669193196" ,
"1364152778703901709363026771889133151461779692852227119" ,
"7950865057695707582568412973673436530134660932444169520" ,
"46341037567470343786047451070151486029346185901812790003" ,
"270095360347126355133716293447235479645942454478432570500" ,
"1574231124515287787016250309613261391846308540968782632999" ,
"9175291386744600366963785564232332871431908791334263227496" ,
"53477517195952314414766463075780735836745144207036796731979" ,
"311689811788969286121634992890452082149038956450886517164380" ,
"1816661353537863402315043494266931757057488594498282306254303" ,
"10588278309438211127768625972711138460195892610538807320361440" ,
"61713008503091403364296712341999899004117867068734561615914339" ,
"359689772709110209058011648079288255564511309801868562375124596" ,
"2096425627751569850983773176133729634382949991742476812634833239" ,
"12218863993800308896844627408723089550733188640652992313433874840" ,
"71216758335050283530083991276204807670016181852175477067968415803" ,
"415081686016501392283659320248505756469363902472399870094376619980" ,
"2419273357763958070171871930214829731146167232982223743498291304079" ,
"14100558460567247028747572261040472630407639495420942590895371204496" ,
"82184077405639524102313561636028006051299669739543431801873935922899" ,
"479003905973269897585133797555127563677390378941839648220348244332900" ,
"2791839358433979861408489223694737376013042603911494457520215530074503" ,
"16272032244630609270865801544613296692400865244527127096900944936114120" ,
"94840354109349675763786320043985042778392148863251268123885454086610219" ,
"552770092411467445311852118719296959977952027934980481646411779583547196" ,
"3221780200359454996107326392271796717089320018746631621754585223414672959" ,
"18777911109745262531332106234911483342557968084544809248881099560904490560" ,
"109445686458112120191885311017197103338258488488522223871532012142012270403" ,
"637896207638927458619979759868271136686992962846588533980310973291169131860" ,
"3717931559375452631527993248192429716783699288591008980010333827605002520759" ,
"21669693148613788330547979729286307164015202768699465346081691992338845992696" ,
"126300227332307277351759885127525413267307517323605783096479818126428073435419" ,
"736131670845229875780011331035866172439829901172935233232797216766229594619820" ,
"4290489797739071977328308101087671621371671889714005616300303482470949494283503" ,
"25006807115589201988189837275490163555790201437111098464569023678059467371081200" ,
"145750352895796139951810715551853309713369536732952585171113838585885854732203699" ,
"849495310259187637722674456035629694724427018960604412562114007837255661022140996" ,
"4951221508659329686384236020661924858633192577030673890201570208437648111400642279" ,
"28857833741696790480582741667935919457074728443223438928647307242788633007381712680" ,
"168195780941521413197112213986953591883815178082309959681682273248294149932889633803" ,
"980316851907431688702090542253785631845816340050636319161446332246976266589956090140" ,
"5713705330503068719015431039535760199191082862221507955286995720233563449606846907039" ,
"33301915131110980625390495694960775563300680833278411412560527989154404431051125352096" ,
"194097785456162815033327543130228893180613002137448960520076172214692863136699905205539" ,
"1131284797605865909574574763086412583520377331991415351707896505299002774389148305881140" ,
"6593611000179032642414121035388246607941650989811043149727302859579323783198189930081303" ,
"38430381203468329944910151449243067064129528606874843546655920652176939924799991274606680" ,
"223988676220630947027046787660070155776835520651438018130208221053482315765601757717558779" ,
"1305501676120317352217370574511177867596883595301753265234593405668716954668810555030745996" ,
"7609021380501273166277176659406997049804466051159081573277352212958819412247261572466917199" ,
"44348626606887321645445689381930804431229912711652736174429519872084199518814758879770757200" ,
"258482738260822656706396959632177829537575010218757335473299767019546377700641291706157626003" ,
"1506547802958048618592936068411136172794220148600891276665369082245194066685032991357174998820" ,
"8780804079487469054851219450834639207227745881386590324518914726451618022409556656436892366919" ,
"51178276673966765710514380636596699070572255139718650670448119276464514067772306947264179202696" ,
"298288855964313125208235064368745555216205784956925313698169800932335466384224285027148182849259" ,
"1738554859111911985538896005575876632226662454601833231518570686317548284237573403215624917892860" ,
"10133040298707158788025140969086514238143768942654074075413254316972954239041216134266601324507903" ,
"59059686933131040742611949808943208796635951201322611220960955215520177150009723402383983029154560" ,
"344225081300079085667646557884572738541671938265281593250352476976148108661017124280037296850419459" ,
"2006290800867343473263267397498493222453395678390366948281153906641368474816093022277839798073362196" ,
"11693519723903981753911957827106386596178702132076920096436570962872062740235541009387001491589753719" ,
"68154827542556547050208479565139826354618817114071153630338271870591007966597153034044169151465160120" ,
"397235445531435300547338919563732571531534200552350001685593060260673985059347377194878013417201207003" ,
"2315257845646055256233825037817255602834586386200028856483220089693452902389487110135223911351742081900" ,
"13494311628344896236855611307339801045475984116647823137213727477900043429277575283616465454693251284399" ,
"78650611924423322164899842806221550670021318313686909966799144777706807673275964591563568816807765624496" ,
"458409359918195036752543445529989502974651925765473636663581141188340802610378212265764947446153342462579" ,
"2671805547584746898350360830373715467177890236279154910014687702352338007988993309003026115860112289150980" ,
"15572423925590286353349621536712303300092689491909455823424545072925687245323581641752391747714520392443303" ,
"90762738005956971221747368389900104333378246715177580030532582735201785463952496541511324370427010065508840" ,
"529004004110151540977134588802688322700176790799156024359770951338285025538391397607315554474847540000609739" ,
"3083261286654952274641060164426229831867682498079758566128093125294508367766395889102382002478658229938149596" ,
"17970563715819562106869226397754690668505918197679395372408787800428765181059983937006976460397101839628287839" ,
"104740121008262420366574298222101914179167826687996613668324633677278082718593507732939476759903952807831577440" ,
"610470162333754960092576562934856794406501041930300286637539014263239731130501062460629884099026615007361176803" ,
"3558080852994267340188885079387038852259838424893805106156909451902160304064412867030839827834255737236335483380" ,
"20738014955631849081040733913387376319152529507432530350303917697149722093255976139724409082906507808410651723479" ,
"120870008880796827146055518400937219062655338619701376995666596730996172255471443971315614669604791113227574857496" ,
"704482038329149113795292376492235938056779502210775731623695662688827311439572687688169278934722238870954797421499" ,
"4106022221094097855625698740552478409278021674644953012746507379401967696381964682157700058938728642112501209671500" ,
"23931651288235438019958900066822634517611350545658942344855348613722978866852215405258031074697649613804052460607503" ,
"139483885508318530264127701660383328696390081599308701056385584302935905504731327749390486389247169040711813553973520" ,
"812971661761675743564807309895477337660729139050193263993458157203892454161535751091084887260785364630466828863233619" ,
"4738346085061735931124716157712480697267984752701850882904363358920418819464483178797118837175465018742089159625428196" ,
"27617104848608739843183489636379406845947179377160912033432721996318620462625363321691628135792004747822068128889335559" ,
"160964283006590703127976221660563960378415091510263621317691968618991303956287696751352649977576563468190319613710585160" ,
"938168593190935478924673840327004355424543369684420815872719089717629203275100817186424271729667376061319849553374175403" ,
"5468047276139022170420066820301462172168845126596261273918622569686783915694317206367192980400427692899728777706534467260" ,
"31870115063643197543595727081481768677588527389893146827639016328403074290890802421016733610672898781337052816685832628159" ,
"185752643105720163091154295668589149893362319212762619691915475400731661829650497319733208683636964995122588122408461301696" ,
"1082645743570677781003330046930053130682585387886682571323853836075986896687012181497382518491148891189398475917764935182019" ,
"6310121818318346522928825985911729634202150008107332808251207541055189718292422591664561902263256382141268267384181149790420" ,
"36778085166339401356569625868540324674530314660757314278183391410255151413067523368489988895088389401658211128387321963560503" ,
"214358389179718061616488929225330218412979737956436552860849140920475718760112717619275371468267080027807998502939750631572600" ,
"1249372249911968968342363949483440985803348113077862002886911454112599161147608782347162239914514090765189779889251181825875099" ,
"7281875110292095748437694767675315696407108940510735464460619583755119248125539976463698068018817464563330680832567340323677996" ,
"42441878411840605522283804656568453192639305529986550783876806048418116327605631076435026168198390696614794305106152860116192879" ,
"247369395360751537385265133171735403459428724239408569238800216706753578717508246482146458941171526715125435149804349820373479280" ,
"1441774493752668618789306994373843967563933039906464864648924494192103355977443847816443727478830769594137816593719946062124682803" ,
"8403277567155260175350576833071328401924169515199380618654746748445866557147154840416515905931813090849701464412515326552374617540" ,
"48977890909178892433314154004054126443981084051289818847279555996483095986905485194682651708112047775504070969881372013252123022439" ,
"285464067887918094424534347191253430261962334792539532465022589230452709364285756327679394342740473562174724354875716752960363517096" ,
"1663806516418329674113891929143466455127792924703947375942855979386233160198809052771393714348330793597544275159372928504510058080139" ,
"9697375030622059950258817227669545300504795213431144723192113287086946251828568560300682891747244288023090926601361854274099984963740" ,
"56520443667314030027439011436873805347900978355882920963209823743135444350772602309032703636135134934541001284448798197140089851702303" ,
"329425286973262120214375251393573286786901074921866381056066829171725719852807045293895538925063565319222916780091427328566439125250080" ,
"1920031278172258691258812496924565915373505471175315365373191151287218874766069669454340529914246256980796499396099765774258544899798179" ,
"11190762382060290027338499730153822205454131752130025811183080078551587528743610971432147640560413976565556079596507167316984830273538996" ,
"65224543014189481472772185883998367317351285041604839501725289320022306297695596159138545313448237602412539978182943238127650436741435799" ,
"380156495703076598809294615573836381698653578497499011199168655841582250257429965983399124240129011637909683789501152261448917790175075800" ,
"2215714431204270111382995507559019922874570185943389227693286645729471195246884199741256200127325832225045562758823970330565856304309019003" ,
"12914130091522544069488678429780283155548767537162836354960551218535244921223875232464138076523825981712363692763442669721946220035679038220" ,
"75269066117930994305549075071122679010418035037033628902070020665481998332096367195043572259015630058049136593821832048001111463909765210319" ,
"438700266616063421763805771996955790906959442685038937057459572774356745071354327937797295477569954366582455870167549618284722563422912223696" ,
"2556932533578449536277285556910612066431338621073199993442687415980658472096029600431740200606404096141445598627183465661707223916627708131859" ,
"14902894934854633795899907569466716607681072283754161023598664923109594087504823274652643908160854622482091135892933244351958620936343336567460" ,
"86860437075549353239122159859889687579655095081451766148149302122676906052932910047484123248358723638751101216730416000450044501701432311272903" ,
"506259727518441485638833051589871408870249498204956435865297147812951842230092637010252095581991487210024516164489562758348308389272250531069960" ,
"2950697928035099560593876149679338765641841894148286849043633584755034147327622912014028450243590199621395995770206960549639805833932070875146859" ,
"17197927840692155877924423846486161184980801866684764658396504360717253041735644835073918605879549710518351458456752200539490526614320174719811196" ,
"100236869116117835706952666929237628344242969305960301101335392579548484103086246098429483185033708063488712754970306242687303353851988977443720319" ,
"584223286856014858363791577728939608880477013969077041949615851116573651576781831755502980504322698670413925071365085255584329596497613689942510720" ,
"3405102852019971314475796799444400024938619114508501950596359714119893425357604744434588399840902483958994837673220205290818674225133693162211344003" ,
"19846393825263813028490989218937460540751237673081934661628542433602786900568846634852027418541092205083555100967956146489327715754304545283325553300" ,
"115673260099562906856470138514180363219568806923983106019174894887496827978055475064677576111405650746542335768134516673645147620300693578537741975799" ,
"674193166772113628110329841866144718776661603870816701453420826891378180967764003753213429249892812274170459507839143895381558006049856925943126301496" ,
"3929485740533118861805508912682687949440400816300917102701350066460772257828528547454602999387951222898480421278900346698644200415998447977121015833179" ,
}; //196 个

bool cmp(string a,string b){
if(a.size() != b.size()) return a.size() < b.size();
for(int i=0; i<a.size(); i++){
if(a[i] != b[i]) return a[i]<b[i];
}
return false;
}

int main(){
freopen("money.in","r",stdin);
freopen("money.out","w",stdout);
string c;
cin >> c;
int pos=lower_bound(val,val+196,c,cmp)-val;
cout << val[pos] << endl;
return 0;
}

• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120