第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

看不懂答案

答案的代碼是不是改變 了move括號(hào)里面參數(shù)的位置,但是print的一直是a -->c, 而不是不改變move括號(hào)里的參數(shù)。不太理解推導(dǎo)的過程。

正在回答

2 回答

形參和實(shí)參的區(qū)別 可以自己畫個(gè)圖幫助理解題干 三個(gè)參數(shù)的意思是 從第一個(gè)參數(shù)通過第二個(gè)參數(shù)移到第三個(gè)參數(shù)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

可可西里羊 提問者

非常感謝!
2016-03-04 回復(fù) 有任何疑惑可以回復(fù)我~

??????????? 二層漢諾塔遞歸作業(yè)的分析
?開始我看了答案也沒明白,更不用說編程了,直到我在程序里加了指示語句,
并把四層塔改成兩層塔)(簡(jiǎn)化),才有了些了解。下面寫出原來的程序以及執(zhí)行結(jié)果:
def move(n, a, b, c):
??? if n == 1:
??????? print a, '-->', c
??print n, 'h'??????????? #用h指示上一條打印語句的結(jié)束
?else:
???? move(n-1, a, c, b)????????? #將n-1個(gè)盤移到b柱上
??print n, 'x'??????????? #用x指示上一行函數(shù)的結(jié)束
??move(1, a, b, c)??????????? #將最后一個(gè)盤移到c柱上
??print n, 'y'??????????? #用y指示上一行函數(shù)的結(jié)束
??move(n-1, b, a, c)????????? #將b柱上的盤移到c柱上?
??print n, 'z'??????????? #用y指示上一行函數(shù)的結(jié)束
n = int(input(‘請(qǐng)輸入漢諾塔的層數(shù): ’))
move(n, 'A', 'B', 'C')????????????? #調(diào)用函數(shù)???
?執(zhí)行結(jié)果:
A --> B
1 h
2 x
A --> C
1 h
2 y
B --> C
1 h
2 c
??? 整個(gè)程序分為三個(gè)部分。第一部分定義函數(shù); 第二部分輸入層數(shù); 第三部分調(diào)用函數(shù)。
??? 先說函數(shù)部分,move函數(shù)有四個(gè)參數(shù),n是層數(shù),我將把它設(shè)為2;a,b,c分別代表第一、二、三
柱, 要注意的是它們是字符類型的變量,賦給它什么字符,它就代表什么字符。在if語句中,
print a, '-->', b語句,應(yīng)該理解為打印第一個(gè)變量到第三個(gè)變量。
?再說調(diào)用函數(shù)的參數(shù),'A','B','C'分別賦給a,b,c三個(gè)變量。
??? 下面?來說程序的運(yùn)行。運(yùn)行開始時(shí)先輸入層數(shù)2。
?接著就執(zhí)行move(2,'A','B','C')函數(shù),n=2的調(diào)用開始:
?跳過if n==1的判斷,進(jìn)入else:中的
第一個(gè)函數(shù),層數(shù)變量n-1=2-1,'A'賦給a,'B'賦給c,'C'賦給b,即move(1,'A','B','C'),
這時(shí)n=2的調(diào)用還沒有結(jié)束,又進(jìn)入n =1的調(diào)用:
??? 進(jìn)入if n==1:,條件符合;進(jìn)入print a, '-->', c語句,因?yàn)閍變量被賦為‘A’,c變量被
賦為'B',所以打印 A --> B,再打印1 h(因?yàn)閚=1)。
??? 這時(shí),else中的第一個(gè)函數(shù)結(jié)束,就會(huì)打印2 x (n=1的調(diào)用結(jié)束,n=2的調(diào)用還沒結(jié)束)。
往下進(jìn)入第二個(gè)函數(shù)move(1,a,b,c,),這也是n=1的調(diào)用,變成move(1,'A','B','C'),這次c
變量被賦了‘C’值, n=1,符合條件if條件,執(zhí)行print a,-->,c語句, 打印的是A --> C,再
打印指示語句 1 h。
??? 這時(shí),else中的第二個(gè)函數(shù)結(jié)束,打印下面的指示語句 2 y。進(jìn)入第三個(gè)函數(shù),也是n=1的調(diào)用:
只不過'A'賦給了b變量,'B'賦給了a變量,打印a --> c時(shí),實(shí)際打印的是B --> C,最后打印兩個(gè)
指示語句后,n=2的調(diào)用結(jié)束。整個(gè)程序結(jié)束。
?如果再分析n=3,或n=4的遞歸函數(shù)就會(huì)有頭緒了。?
?說得不對(duì)處請(qǐng)指正。感謝不用限時(shí)完成作業(yè),感謝被指派回答問題。

6 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
初識(shí)Python
  • 參與學(xué)習(xí)       758365    人
  • 解答問題       8967    個(gè)

學(xué)python入門視頻教程,讓你快速入門并能編寫簡(jiǎn)單的Python程序

進(jìn)入課程
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)