回 帖 发 新 帖 刷新版面

主题:请教:转子程序(目前给出的答案都不对  应该是转子程序)

用转子程序编程:
S=2!+18!+21!+22!
如果用变量A代表2、18、21、22这4个常数,那么它们4个常数的共用子程序应该是:

P=1
FOR I=1 TO A STEP 1
P=P*I
NEXT I
RETURN

主要是前面的主程序应该怎么写,请各位教指教一下,我想了很久,用 IF THEN条件转
子语句或 ON 〈算述表达式〉 开关转子语句都没有把主程序写出来,还请大家帮助一下!

我是说,这个程序用转子程序来写该怎么写,不是附加子程序.

回复列表 (共11个回复)

沙发

a=2
gosub jiecheng
s=p
a=18
gosub jiecheng
s=s+p
a=21
gosub jiecheng
s=s+p
a=22
gosub jiecheng
s=s+p
? p
end
jiecheng:
P=1
FOR I=1 TO A STEP 1
P=P*I
NEXT I
RETURN
可能是这样吧?
如果用自定义函数,应该更好些吧。

板凳

如果要使用准确值最好用高精度。

3 楼

GOSUB语句有两种基本形式:
1、直接转子语句:GOSUB 子程序名。
(说明:执行到此语句时,转到指定的子程序,如果无指定的子程序则报错)
2、按表达式选择转子语句:ON 表达式 GOSUB <子程序名1>、<子程序名2>……
(说明:执行到此语句时,先计算表达式的值,值为1则转到子程序1,值为2则转到子程序2……如果表达式的值为0或者大于GOSUB后面的子程序的个数,则不转到任何子程序,如果表达式的值为负数或GOSUB后面的子程序不是全部有,则报错)

4 楼

CLS
A = 2
GOSUB SUB1: S = P: A = 18
GOSUB SUB1: S = S + P: A = 21
GOSUB SUB1: S = S + P: A = 22
GOSUB SUB1: S = S + P: PRINT P
END
SUB1:
P = 1
FOR I = 1 TO A: P = P * I: NEXT I
RETURN

5 楼


为什么在子程序里面不能用data

6 楼

CLS
A = 2
GOSUB SUB1: S = P: A = 18
GOSUB SUB1: S = S + P: A = 21
GOSUB SUB1: S = S + P: A = 22
GOSUB SUB1: S = S + P: PRINT P
END
SUB1:
P = 1
FOR I = 1 TO A: P = P * I: NEXT I
RETURN

7 楼

高精度
 1 ! = 1
 2 ! = 2
 3 ! = 6
 4 ! = 24
 5 ! = 120
 6 ! = 720
 7 ! = 5040
 8 ! = 40320
 9 ! = 362880
 10 ! = 3628800
 11 ! = 39916800
 12 ! = 479001600
 13 ! = 6227020800
 14 ! = 87178291200
 15 ! = 1307674368000
 16 ! = 20922789888000
 17 ! = 355687428096000
 18 ! = 6402373705728000
 19 ! = 121645100408832000
 20 ! = 2432902008176640000
 21 ! = 51090942171709440000
 22 ! = 1124000727777607680000
 23 ! = 25852016738884976640000
 24 ! = 620448401733239439360000
 25 ! = 15511210043330985984000000
 26 ! = 403291461126605635584000000
 27 ! = 10888869450418352160768000000

8 楼

28 ! = 304888344611713860501504000000
 29 ! = 8841761993739701954543616000000
 30 ! = 265252859812191058636308480000000
 31 ! = 8222838654177922817725562880000000
 32 ! = 263130836933693530167218012160000000
 33 ! = 8683317618811886495518194401280000000
 34 ! = 295232799039604140847618609643520000000
 35 ! = 10333147966386144929666651337523200000000
 36 ! = 371993326789901217467999448150835200000000
 37 ! = 13763753091226345046315979581580902400000000
 38 ! = 523022617466601111760007224100074291200000000
 39 ! = 20397882081197443358640281739902897356800000000
 40 ! = 815915283247897734345611269596115894272000000000
 41 ! = 33452526613163807108170062053440751665152000000000
 42 ! = 1405006117752879898543142606244511569936384000000000
 43 ! = 60415263063373835637355132068513997507264512000000000
 44 ! = 2658271574788448768043625811014615890319638528000000000
 45 ! = 119622220865480194561963161495657715064383733760000000000
 46 ! = 5502622159812088949850305428800254892961651752960000000000
 47 ! = 258623241511168180642964355153611979969197632389120000000000
 48 ! = 12413915592536072670862289047373375038521486354677760000000000
 49 ! = 608281864034267560872252163321295376887552831379210240000000000

9 楼

50 ! = 30414093201713378043612608166064768844377641568960512000000000000
 51 ! = 1551118753287382280224243016469303211063259720016986112000000000000
 52 ! = 80658175170943878571660636856403766975289505440883277824000000000000
 53 ! = 4274883284060025564298013753389399649690343788366813724672000000000000
 54 ! = 230843697339241380472092742683027581083278564571807941132288000000000000
 55 ! = 12696403353658275925965100847566516959580321051449436762275840000000000000
 56 ! = 710998587804863451854045647463724949736497978881168458687447040000000000000
 57 ! = 40526919504877216755680601905432322134980384796226602145184481280000000000000
 58 ! = 2350561331282878571829474910515074683828862318181142924420699914240000000000000
 59 ! = 138683118545689835737939019720389406345902876772687432540821294940160000000000000
 60 ! = 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
 61 ! = 507580213877224798800856812176625227226004528988036003099405939480985600000000000000
 62 ! = 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
 63 ! = 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
 64 ! = 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
 65 ! = 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
 66 ! = 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
 67 ! = 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
 68 ! = 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
 69 ! = 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
 70 ! = 1978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
 71 ! = 478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
 72 ! = 4458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000

10 楼

73 ! = 5461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
 74 ! = 4151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
 75 ! = 1395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
 76 ! = 6050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
 77 ! = 5869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
 78 ! = 7831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
 79 ! = 8685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
 80 ! = 4811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
 81 ! = 9734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
 82 ! = 8206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
 83 ! = 1180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
 84 ! = 9130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
 85 ! = 6061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
 86 ! = 1259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
 87 ! = 9595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
 88 ! = 4380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
 89 ! = 9839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
 90 ! = 5569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
 91 ! = 6866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
 92 ! = 1715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
 93 ! = 9576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
 94 ! = 182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
 95 ! = 7372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
 96 ! = 7795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
 97 ! = 6158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
 98 ! = 3494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
 99 ! = 5929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
 100 ! = 2963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

我来回复

您尚未登录,请登录后再回复。点此登录或注册