Kā darīt šo summu?

D

davyzhu

Guest
Sveiki visiem,

Es gribu darīt summa, piemēram, zem,
B (1) = (1);
B (2) = (2) (1);
B (3) = (3) (2) (1);
.....
B (k) = (k ) ... (3) (2) (1);

Kā es varu izdarīt bez "par" cilpa?

Sveicieni,
Davy

 
Hi;
Jūs varat izdarīt summu, neizmantojot par sakaru līnijai, izmantojot recursion

vienkārši definēt rekursīvas funkcijas B ir sekojoša algoritma

ja k> 1
B (K) = B (K-1) (K);
cits ja K = 1
B (K) = (1)tāpēc katru reizi, kad funkcija mēģina excute sevi ar indeksu k to pieprasa pati ar zemāku indeksu līdz tas sasniedz B (1).un tad apstājas.
mēģināt īstenot dažus conditionsthat atbilst jūsu pieteikumu, un apliecina, ka K netiks-ve vai 0, jo tas būs iemesls tam, lai ievadītu bezgalīga cilpa.

Sveicieni
Klausīties El-Saadany

 
Klausīties El-Saadany rakstīja:ja k> 1

B (K) = B (K-1) (K);

cits ja K = 1

B (K) = (1)

 
hi eng_semi;

Tas nav vajadzīga samazināšanās statments, Šis algoritms nosaka funkciju sauc B. tā ikreiz, kad yo zvanu B garām dažiem ievades tas excute no sākuma.

piemēram, ja mēs saucam B (4), kas notiks, būs šādi.
A-4> 1, tad B (4) = B (3) (4 ).......(4) ir definēts, bet Ups B (3) tā nav tai būs nepieciešams zināms novērtējums.
B-tas izraisa funkciju sauc vēlreiz ar to ir ieguldījums ir 3.
C-3 arī ir> 1, tad B (3) = B (2) (3) ...atkal tā saskaras pati problēma ir jānovērtē, B (2)
D-.......... un tā tālāk līdz mēs B (1).ka tad aizvietot B (2), ka secīgi tiek aizstāta ar B (3) un tā tālāk ...ka 's, kāpēc to sauc rekursīvs.

Ceru, ka palīdzēja;

Sveicieni
Klausīties El-Saadany

 
Jauka ideja, Klausīties

Bet es domāju, ka ne visās programmēšanas lamguages pieļaut rekursīvas funkcijas.Tomēr C / C ļauj to.

Ievērojiet arī, ka rekursīvas funkcijas parasti ir lēnāka, jo gaisa atkārtotu funkciju zvaniem (funkcija zvani pati vairākas reizes)

 

Welcome to EDABoard.com

Sponsor

Back
Top