LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 908|回复: 5

[已基本解决]]利用for语句实现前n个奇数之积(n由用户输入)

[复制链接]
发表于 2007-6-13 15:47:57 | 显示全部楼层 |阅读模式
自己想了一下,还是没能实现前n个奇数之积。
  1. #!/bin/bash
  2. echo "please in put N"
  3. read N
  4. product=1
  5. if [ $N -lt 1 ]
  6. then
  7.         echo "input error"
  8.         exit 0
  9. else
  10.         for((i=1;i<=$N;i++))
  11.         do
  12.         odd=`expr 2 \* $i - 1`
  13.         product=`expr $odd \* $product`
  14.         done
  15.         echo $product
  16. fi
复制代码
现在还想问下,如何判输入的N是否是个整数
用[ $(($N%1)) -eq 0 ]
不行,当N为非整数的时候会出错
发表于 2007-6-13 16:30:50 | 显示全部楼层

  1. #!/bin/bash

  2. echo -n "please input N"
  3. read N
  4. jishu=1

  5. if [ $N -lt 1 ]
  6.     then
  7.         echo "the N must >1"
  8.         exit 0
  9. else
  10.     for ((i=1;i<=$N;i+=2))
  11.         do
  12.           ((jishu*=$i))
  13.         done
  14.     echo $jishu
  15. fi
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-6-13 16:36:52 | 显示全部楼层
下面我寫這個-ge應該是錯的,應該只有>才對,你翻一下手冊怎麼寫.....

a=1
b=1
until [ $a -ge 10 ]
do
b=$(echo $b*$a | bc)
echo $b
a=$(echo $a+2 | bc)
echo $a
done
回复 支持 反对

使用道具 举报

发表于 2007-6-13 17:28:57 | 显示全部楼层
这个题主要的问题是溢出巴,可以用log变乘法为加法,这样可以算比较大的n
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-13 20:54:41 | 显示全部楼层
谢谢楼上的几位朋友,谢谢你们的知道。davi兄,谢谢你的指引,但是你的表达式,描述可能有点不对,Iambitious,你所谓的用log变乘法为加法可以给我个例子么,我初学shell,有很多地方还不懂.下面是我写出来的此题代码:
  1. #!/bin/bash
  2. echo "please in put N"
  3. read N
  4. ji=1
  5. if [ $N -lt 1 ]
  6. then
  7.         echo "The N must >1"
  8.         exit 0
  9. else
  10.         for((i=1;i<=$N;i++))
  11.         do
  12.         jishu=`expr 2 \* $i - 1`
  13.         ji=`expr $jishu \* $ji`
  14.         done
  15.         echo $ji
  16. fi
复制代码
顺便再问一句怎么用判断n是否是个整数,是用test么,好像忘记了,刚才man了一下test也没找到。
回复 支持 反对

使用道具 举报

发表于 2007-6-13 21:02:18 | 显示全部楼层
s=1;read N ; for i in $(seq 1 2 $N) ; do s=$(($s * $i)) ; done ; echo $s 这个有溢出

s=1;echo "please input N" ; read N ; for i in $(seq 1 2 $N) ; do s=$(echo "scale=10;$s*$i" | bc -l) ; done ; echo $s 这个结果很有意思

huanghongzhi@x300:~$ s=1;echo "please input N" ; read N ; for i in $(seq 1 2 $N) ; do s=$(echo "scale=10;$s*$i" | bc -l) ; done ; echo $s
please input N
10000
47654274535269066308351539761617060728079861644905456507660622035616\ 42881794090325638371222185413171530425108469543765157643879450412564\ 89655308638274642762599209903898237034246292113560861279590459877148\ 73199805365934804883660832395392689281420677959690888944225416168435\ 41070678535254480409441597826344103766499107510760179855579246767420\ 72555856865668649360138730282872172925944972651565707112492982448282\ 08012232472263241918678445138493268934880758813593829957744748226062\ 87612526114020320955059409540601197520978570800160789209379640541073\ 52514916299885930155473511895349127941762946084227770241950562535002\ 38168548770140922014695392426832147225746439379937704374260425752753\ 12028425795364786700245776269898712047458086425521491108642623053018\ 01453177595719803546647987087575746869518725576040199225724249394592\ 31076725899147138238314892625366003810219131922297629817711526282445\ 01369581648118966723755174673706997446727126948306009320545990977805\ 84281132466578486995028690554578759417599118542505608162091499500821\ 11578355446042778084259519276923448431306269966151359770195046402831\ 47514217932866904345552159506826193839090941136154522688987425788066\ 81573821578873670722766414379147704386740742938105593278953075753692\ 91341744646853914032147784962251392834978292342336407412209508510151\ 95124649046107049884731631884538238500657602889162963344952969461416\ 77269180358680298518595666832969843051333672521020946170737327115359\ 80629975693289820788719214098223534933148347780559221151604700385618\ 22041088826298932599495670595788069134918294346255886276663069587499\ 49323258862860652558445460900781904161807092205950445745328974971823\ 83288676366881121667527624987587576050627895101680938629656944467425\ 08699199739946732233805853376495125755550237110030700738785993352743\ 62678781214888855468482740884067892385531315959216217376939921975901\ 66464341190302838026533188946986860503579871960823786667990263382541\ 03210564741346262645646351808222248110513375981274803923356061193584\ 43964652639614693172630464264350168724788966697461743493354747548904\ 37179620541421524641729383994539611119627585753694372571334615774751\ 98484952529353582788476109310987872462211153424671387330881790998964\ 09374315209614344713207454243538952341936315801865278700663580555054\ 83971020592284125320909217038697740852948605186241298455289557504011\ 74596538605754390370793674194537713648454091861881382828128208350067\ 72023816962781793828238802800156708020790156258153439319025942768858\ 50328506281413387119557173435752591355946965511237039042060102210680\ 72062838737023589617740685812119034619073322509278314938096472491337\ 50008268159294863088151493132630403424697998211229763819960184865427\ 07153708079636513067320225413901479890471775867619014781006312250587\ 15140460058759187802045078810541399646022563198505776467173303139335\ 70370574289930463795576306835168009405971514017024122354109346084009\ 56272344069632445764429611598433960640707743817492714813552136520054\ 57591804839355735138041613634687718576413562536213482440483737906342\ 91637043827531676145391537286366591566782786960762018762643175192938\ 80044661492452759693876219315510700926172997862321932728893083552799\ 34804845897254303648178974897692692258389635784677332601271567993854\ 88407934059590503358204443472037022346392977688037466846502208059466\ 22782634725188995158852621112335055728049755958136529065483483427455\ 17436118322649002186144319762473853596366097350379409599997943187042\ 27201793983863908076591479754400397173319815624837406249445013580575\ 95647021691857876474106147371080673182590774333337925993625119749790\ 38392428401211095368621003504670106735122945744929113878795565851257\ 32225179363394989326978941406220851866184329360845013167335268981555\ 20636026978092422413478252203355711376775789336299839754003439814997\ 90755096192499110104880532854823301150284813799007435420244025144050\ 72026393754953099334411013360075180235884761408913774127622184263259\ 19352972232017578850912308885414053463547114337866640445479510914199\ 22041740453956125487019351125873260594747524270130676239626090645313\ 06959255142763296373766903832991912441314470828896994571864245106781\ 86225689180882003177964636377603446721420049564308378375557981404506\ 70283753073206222665060357516440109716442587345735707434961359251560\ 82046089544110303250492215892023415908105038887832922277280431097266\ 08870547934067091617969111757427592027331857424790472088554071333735\ 63608405743222490263947739241073473232351697102026461857007089501330\ 64859500015273819437538567208637448425317573222417445244060153481240\ 47389616090895441106128561629301397922775273118673362667733304178836\ 47196731588614307260224206705557060898358645590569634992474603900041\ 90020985272659715908036702503271131133132427710905200518546536067088\ 53452244930526738496735267426563405365843412706834688110817797184442\ 50016434082224634857666836055899447170960221700116146593617686853843\ 56285351213763710880623766889833113911650456459013850889699419678469\ 89420826587194496210269236850994945561573007834788136241067044644785\ 34575320746204326819651915787730972069186759542265156347141333725634\ 84505612418621617310073197110258951893637797163532631884494370781729\ 27912482797958455196422052857671040140930881916467866452369910068291\ 59633710855402592354989683335568282612394217269856186749087270963133\ 33571736036494871651214944305505931785624333386846849159915873002793\ 68332502374093296145996241947077004064172530710415485952298203120038\ 73335988587449270969515732303202693582401725984926982462111532000580\ 82564550433514785125322080706387109471818477457261709409769225493254\ 98409247551742884291094724733419576199857655614135166475977766951548\ 71044301392386585989915498537766159642394719599893658849396092665726\ 35127931737532562199077950480985033327419205246155952211503895366758\ 70060757126804883862152399787999915834373327471532358030867237332136\ 33386526571442874520571069047879330850766214550712910568614511101175\ 83473958457625318973414911481549744117997281643052937268548030334864\ 19591967616951183241452467904471776794305612056762923553152519469040\ 67981774865302638906349689104696013525365009602245758689038342460567\ 89838581993492520485373152914630122935718840573253124688577940850668\ 00353785473287830904004211090726985962660244988218641996345764941320\ 11771475180619404024812770331810115818567246204322427384683277506677\ 78682833623459303761995641204166486485026800695183407924775235685663\ 38536531913615032521356502042614400434523520095180427025007856595519\ 66455207874683153002020282202588731614014311945588195841898296958479\ 83150595997525156326509202437021675361074927459703221229555147737567\ 41840068154647273280185027024629261101560942793442001987488134089504\ 19055184470174196287634925023169775741071243244636285950472248559116\ 46635135917014356761410391603860908763522009589890730333205094538800\ 14815888634193812571720149620878426391055365662972355901317393853809\ 91772234530562944501898610978408436505753880894076177057460296661757\ 86334715153626238672953022213652927513199547359576889819740396384533\ 49360335373773396790961723648733805538387907280803462881293980299116\ 91864850071124126510720155027739540437291622269147460250055086067171\ 20808316588809478656754081805968966792689083292658929130753297504624\ 18329131689663325924754779330270860793965108284345757430018364191088\ 23818529418626374914286870628416729360102275461548123339060506085475\ 61836422965307825937936103923437382965928183473498691082189400102765\ 36683796348830800270484943901479040667613985588711396470705444620018\ 19801547246075971081913619308793148824552197267649640478810550002150\ 00195416903657893395309215225889822190911990920082938370642551293164\ 83791342218372853497640390198236585975005082086383753878573135664694\ 17897563386163120705682362821444342390348022391434267152823708367077\ 96108330303891358135155096334236790559556818532830225753267293180083\ 57430550486097057427738371178410006375210032793403149557838240945663\ 71862449352873554553528315580925582787162134060611360258908505038652\ 02048197417920040102111592127076670191420804629807968895393077915225\ 63547780546355075371249813963001409120255575279301959225914678781688\ 92750389882894610328527358881212758998713706762667144695248859605608\ 05555713646805267473472400077685799707817642463307223359649272020216\ 61506052051608555748270330119892844038449547993127771293068550976314\ 23801251334237185127311906962829743693140307190335167238452348883755\ 13149858960869530348137016276342301488349646363552113984731086238097\ 52669959338698464523928299796275153042362240521788728845013846804719\ 02487766541464546848172716445243233745903769615678136224880014116445\ 87463835546018516799854655704086302878982763636156674012777515573577\ 51680618188419121959345620402995858912256339628769015835908283414150\ 86230012283945229396466546812282836507689343016368624747722876223691\ 04728145065138924113418229243817836553384776833479625926299491700629\ 11508740948568370931478715112655900803529199275534551673455314986984\ 29584194715289779020986735526652519738720977590951964119412281119761\ 94154154014899228037121979290535067175794766121438743720639279521199\ 21601409806126557957369016177982868464423174209324163981500897657551\ 32665383673276931559498176222328821137104842274208374406264832666644\ 41673378244969721333461247078142718035875358656686115458980518426231\ 86156931914075579744297691072670741531326515825206701298333541530704\ 89157794402697351193568905163378711032955233727370997635106067777271\ 13762434821993662136253267630867512740648325048328746155923600790647\ 45306167248890709241961713991925557329510563336773712049891627827114\ 46288458954081957638988555238383425931498273542850688323921259970484\ 11550357234074875199333292251623053527121789779512578099993380877962\ 17125689496374903776023268476112849428189544409595041407832324264588\ 12922164692234373822783083897173028723592219348855579949166196416582\ 91334653116373684797959189003341993971280143518695559635292871297010\ 78836119431197423747438330717929417401943018412012108506553483065894\ 79762807375909604794138726203590011180166994192506980190220238807575\ 49372050349500074407305233128397003863540700628706472521551871755998\ 02645362453910871248630713773765711231224533610865614510913643170788\ 66576782915766738375091478842914913095138030387686645947130850732509\ 93839679943220467660460591486938711729618605990736294906984368551820\ 91474612690569243993322918696987505610334370448477312589333705382228\ 70426930298476928500003514942575240927419763309210162092470529130991\ 98467461181536821078239433707081486923816942335869985447699877160418\ 45454348315853470837057823318115581531944004704994175746346451112352\ 93150775406558761859685549812953617330437343226634979233656635308331\ 56721863354141863748346266974570957054362581114548573519317366859296\ 72056483090302606970468868966798212663035443658303296076139888591919\ 68530306343032791741274101499659732974736017607198874022925129411863\ 33207777662188396399121447040184055225471258503058772341207774383078\ 66589698839493216621824907289383867610545904724191054136463065318128\ 54893025020948133187813908580442155227651419079439172145907786706725\ 19332066408631288207304993955177152097130854069901898149569832492648\ 02212129727193021136169900503544619727154074831709492714452943026869\ 03738568576501450200805558581470923196868105965556521513084901218395\ 18395934122461865029438344644039810141249572752177840284922012515759\ 99069448492872693069178419522809971579550497695980064025114555344206\ 33146593623206795227603954712083392899546340647936217998535483696044\ 39116449073068657268079483428442038221425742639216017481042107790728\ 56925731044740646621744944289916120293309617997663555111313653114343\ 60943245182350705737319609723413508878786715097951630937062871843035\ 52543965363618071743936008467012152347511513450447473487120935810135\ 61513378802733132326255381236383155465805915783170406563769464516436\ 68383912091207404451334657285893035384479515394466453673042910989385\ 11760336859677493567040843703051879125948074212109017027688303077340\ 53711210724361801927394062422920402166077128965547977302094676709072\ 38621008943817367998605080247715671746801282023296258207128457997142\ 40122581102806074734881509778295464916405667241090183780437825546454\ 15757767040726892880900719402582717342207477109443140875275114136422\ 03635573264378533288077067036782928552306648944893288044905740290013\ 00120162328329748854749735821191829375312644679902042772139973145742\ 67049850461923800399585667919442546161025863558573247755564013682300\ 83072197743913986697731071415214591174547337993721656948380510729703\ 97778720113803597315879151050291140792882624777994589263052004412922\ 60300438043911466087769097572814140371053929356552869068815702017613\ 68655844940140276307510953050725736818903362843389692381092686804463\ 01611369900105051472343365550383328329499856448182263510935069713319\ 96127548300482026349610708449056225371039304593836235034667463727062\ 10832897464400056277143707240817727329008376924097314651060156313846\ 63483436133996893511799567082526804210137812094177518434824557349125\ 10952601251857761129650951013178154843078439055702074760915425505671\ 86898426909995006995174164619775268783335216802509427027650963564851\ 66873863519003001805342080455113229624039651955654038610377575985837\ 21717700613486887168116212147612916387297435661317434095431697035542\ 86797051537722101566760712793059098764464956429779908112801917456436\ 98571010870706122107691493572612597717415487779414840818786788280645\ 14585009768234192021740294781535135870503654285581326662062364099919\ 88918047261380041905762483584927258410690585414603706102394840251465\ 46426059245334901155045052540986594948353083250455320359303133706302\ 66748111476211921235261136226971067841802555439366130950194032208210\ 66073676428922472977463004000369933624856316965730452038842668441279\ 57817733014399417841814776940262541090192249437885494750484314692914\ 96075557011568732316654786510804812394153584857369366470644524636144\ 74844468155562815855584433578483323619239437267826762485795296729320\ 58326525783954311373218288877566447485195782258108365421130056454271\ 44344074937316326141470619892418518368893697525632795812509082571397\ 04002477437156874171266990440476935398916810026196584214149471586077\ 17418980380707771930793432013819122109298668252573648559229019318659\ 73897668202728139244754959213571853939440686778610011554025212324355\ 17777816374940109242235184728722777505476377800404531580821097542750\ 73414958382602810648138183516761623466807913604125902373690469049460\ 79951900573102734507741380821515907848206191810706505382618791698093\ 84128498229116130651130190770756605806084761655827250091725171266086\ 66942798255578579113087554303176825292256160112321409682836721679278\ 75936233804242637219877292425311192084698359413832274794056567457370\ 94789290328718898581994387228980765623499291670460101768809411973584\ 11617220149439060834257671337727838348064833933593075156686301593465\ 87173437059033391510304605821218773937387159861955519715669789162311\ 89168530155545103173455165005350401086997163596681134255535577939806\ 68990995399706508886512057127365723192774445564525368253740590151683\ 52037484212148185014553239008594389983967482422560431874692094910401\ 55668602764179775569899046521136837288373287740510523816017160068957\ 03689608478686006137358296305252401789614372888184888880002589918236\ 13206386595615387188289514495563412717572490712436191794676331737184\ 11375913764339762715067458832940688959299246495480976794493504212480\ 33371583139591697349944809256473354402802108298505881753672342862407\ 06949198399119408359500504785868191319700086256735869173101280118715\ 35480428429986514393919892649295040450020585460381604698865869335815\ 79611347606683095169743678330268212725592582953868439491273874500882\ 32544721094281930298973022575389728616104783020789692453247106175758\ 12985219849599018968121242173039469273564723541937041106725414681613\ 71409850724078179132754729070236941381141953341680585911653985152370\ 06747783644314482672554285995180766262725473707943323637794322170707\ 58586839395953214650608575389075617152329385626263073809377487114951\ 50313973347425846995385650553128694513058310497180627707715109124303\ 02224544613634898853538834850595416864802761833194608378893781952288\ 75015256444840564006033515728951890793090553619083001973245367569064\ 02891084435358152631489039396202137047081507948933111970591910195121\ 17139589525474528388035067874932553689009330804359587080939296062261\ 16995678452620892171659024421493077378439830342229090791096694191932\ 27729001233483613220684511071761709888236833129154314662360440174145\ 67634324954774851535616198932806130283011088315528369518705203052824\ 87143530651981839813570940402068970714342308050180514252815037285150\ 91313832447093034531474138081743599644421463308293917867385972442003\ 83393290989228390522237810250588585833986300259506106352829676117178\ 34460298849643476337748574062659727063419085903600391622708009545047\ 21147268508918768142075520267397921098308231028234244985392268639090\ 53854648391799772460504393194032373019042845011952186431918697233625\ 02468044873957598706446876497563185612687222443919658119003465421917\ 46381593694500750360900066518322015177180126439359430877042237103595\ 86544062535143994541928126820440185690005677280530387215091245440929\ 01495028576711725302430018187023542369443306249403196393444962326381\ 23532258962935248170506295950589283547605951689407177624432817924051\ 83609588100191112983726675165879923885511641079315689088519545021226\ 34494221854051908866130452383559741874307094786397872260422970509672\ 12170069048975933694848608111160254725866376528857999133490478797017\ 23587505911438175708105210666782691277497879260793642409432286652992\ 43653115857495689185663608948353460867961220606006375714778791472696\ 80024211434546530769776335111914399300956352951779130914525161455938\ 37329324625251444867033080827559265366084683632449412849814876638075\ 78741661653191014709647550485380774401311287907019089318313176412230\ 10022834848205923051356949310354314233671127745139450613280144899030\ 70910444831471359712653456602076102821639175255441500667075160890817\ 6422119140625
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表