鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
南師大老師教你如何做遞歸題目

源程序:
option base 1
private sub command1_click()
  dim a
  a=array(1,1,1,1)
  call sub1(a,4)
  for i =1 to 4
      print a(i)
  next i
end sub

public sub sub1(x,n)
  if n>1 then
     for i=1 to n
        x(n)=x(n)+1
        call sub1(x,n-1)
     next i
  end if
end sub

運(yùn)行結(jié)果:
1
25
13
5

分析:
1、程序從按鈕的單擊事件開始運(yùn)行,先給動(dòng)態(tài)數(shù)組a賦初值{1,1,1,1},然后調(diào)用子程序sub1來改變數(shù)組a的內(nèi)容,最后輸出改變后的數(shù)組值.
2、此題重點(diǎn)在于子程序sub1中包含遞歸調(diào)用,即自己調(diào)用自己,所以在計(jì)算時(shí)要特別小心,一是要注意n的條件,二是要注意循環(huán)次數(shù),三是要注意數(shù)組值的變化;其實(shí)在計(jì)算時(shí)可以看出來是有規(guī)律的。
首先:sub1(x,4) :n=4(n>1),for循環(huán)要執(zhí)行4次,每次執(zhí)行時(shí)x(4)的值加1,所以x(4)最后的值為1+4*1=5,同時(shí)要調(diào)用sub1(x,3)4次,每次結(jié)果一樣,所以只要求出一次的值,再乘4即可。
其次:sub1(x,3):n=3(n>1),for循環(huán)要執(zhí)行3次,每次執(zhí)行時(shí)x(3)的值加1,所以對(duì)于求一次sub1(x,3)結(jié)果為在原結(jié)果值上加3,而一共要調(diào)用4次,所以最后x(3)的值為1+3*4=13;同時(shí)要調(diào)用sub1(x,2)3次,每次結(jié)果一樣,也只需要求出一次的值便可以求出最后值;
最后:sub1(x,2):n=2(n>1),for循環(huán)要執(zhí)行2次,每次執(zhí)行時(shí)x(2)的值加1,所以對(duì)于求一次sub1(x,2)結(jié)果是在原值上加2,而一共要調(diào)用4*3次(想想為什么?),所以x(2)最后的值為1+4*3*2=25;
x(1)=1(因?yàn)閚=1,不滿足條件,所以值保持不變)
所以最后結(jié)果為{1,25,13,5}