c 中乙個有有趣 經典的遞迴問題,有興趣的朋友可以嘗試下哦

時間 2025-06-21 16:25:09

1樓:匿名使用者

這還要發到這來,服了!

c# 遞迴問題,求高手

2樓:網友

1全部實現有點困難,你的資料表設計有點問題。

看樣子你應是想的到josn陣列吧。

舉例說吧:你的電腦表示是01

下面的聯想表示是0101

如果電腦品牌多了咋表示呢?

要麼加個分割符號,比如01-01-101,等,但是呢,我還是不建議這樣子做,麻煩,要不斷的分割字串。

我建議加乙個列。

id name pid

1 電腦 0 --0就表示根吧,就是最頂層2 手機 0

3 電視機 0

4 聯想 1

5 華碩 1

6 惠普 1

7 諾基亞 2

8 三星 2

9 夏普 3

10 海爾 3

11 n81 7

12 n95 7

這樣子就好多了。

遞迴迴圈,我們就開始了。

先找到所有的根,就是pid=0的。

public void root()

s+=str+",";

s= , 1);

public void add(datarow dr,ref string str)

;if (i == - 1)}}

還有問題,可以hi我。

3樓:網友

function printdb(int depth,string index)//depth代表當前深度。

開始呼叫寫printdb(0,"");即可寫的比較大概,有的地方語法可能不對,但思路肯定是這樣了。

4樓:三界聖神

這不難,要顯示最方便 的還是樹形控制項,可觀性強,重點在資料庫上:

你不但要存id和名字還要多存一列 識別號,根結點的識別號全設成零即可,然後比如:

電腦下的聯想,它的識別號就設成 電腦的id號為01,聯想下的比如乙個型號,它的識別號就設成聯想的id號為0101,以此類推,然後再用資料庫查詢的時候按級聯方式一層一層往下找,找到一層就在樹形控制項上新增結點,直到資料庫中沒有資料為止。。。

5樓:知行不易合一

上面的**效率不高,頻繁操做資料庫,效率損失很大。

下面提供乙個思路,自認為效率比較高。

這個不用遞迴,sql語句公升冪排序一下,問題就簡單了(select * from tablename order by id desc)。出來記錄的順序就應該是。

現在的主要問題是你的問題不清楚,不知道你到底要輸出什麼東西?字串還是物件還是treeview節點?如果只是輸出字串,那麼很簡單,搞乙個for迴圈,然後判斷字串長度,根據長度來加入縮排的空格即可。

string s;

for (int i=0;i

涉及到遞迴的乙個問題(用c#**解決)

6樓:網友

static void doevent(listli, ref int firstnum)

/獲得下一輪第乙個人應該叫的數字。

firstnum = (firstnum + 3;

把該死的去掉。

for (int i = 0; i < i++)//如果人數大於一人,繼續遞迴。

if ( 1)

doevent(li, ref firstnum);

這種寫法應該容易理解了。

7樓:斛珠軒

可以用連結串列實現(因為c#不完全支援指標,所以複雜點)。。設定13個節點的連結串列。。。然後用多重迴圈去刪連結串列的節點。。。

最後剩下乙個節點就是你要的結果。。。節點中的元素自己設。。。

8樓:網友

設乙個變數是門徒的總數。

迴圈給門徒負值進行判斷等於3的就把門徒數量減1!大概是這個思路。

c#遞迴問題

9樓:網友

是否遞迴和deep沒多大關係,除錯時需要注意返回的rowlist裡的資料是否為空。

c#遞迴的問題

10樓:y湯驢

//遞迴,其實就是自己呼叫,知道完成就不呼叫自己!假如n=5; //int 結果 //f(5)=f(4)+5 //f(4)=f(3)+4 //f(3)=f(2)+3 //f(2)=f(1)+2 //f(1)=f(0)+1 //f(0)=0 這樣看 就很容易看出結果來了 假如 我們把帶有函式的換成字母那回更直觀,就是我們的中學數學了 f(5)=x4+5; x4=x3+4; x3=x2+3; x2=x1+2; x1=x0+1; x0=0; 這樣我覺得大家口算就能算出來 f(5)是多少! 其實遞推就是自己呼叫自己,只是每次呼叫引數都在更改,當引數與設定的值符合時,才不再呼叫自己!

有點巢狀的感覺! return 0 就是你所謂的出口,它返回的是乙個值,而不是一函式! 注意:

理解的時候 在這裡不把程式理解成一步到位的概念 !

11樓:甘聞海

遞迴相當於數學裡面的遞迴式,你的函式好像寫錯了,+號應該是×號!這不是求階乘的,而是求和的 求階乘應該是下面的 int f(int n) 解釋如下: if (n < 1) return 1; 相當於 f(1)=f(0)=1; int i = f(n - 1)*n; 相當於f(n)=f(n-1)*n 你用數學的方法,倒推過去剛好是f(n)=n*(n-1)*.1

乙個關於遞迴的問題c#,**如下

12樓:網友

class program //這句不用說吧。

public void count(int inval) //函式count ,依據引數倒序顯示,比如輸入5,那。

count(inval - 1); //每次減1,inval); //輸出顯示}}

13樓:

程式呼叫count函式後 進入首次執行 當執行到函式自呼叫的方法時檢測到含有後續** 此執行緒保留即結果保留類似與錯誤堆疊一樣保留的時候是3--2--1 一層層的放入快取輸出流即字串池中 繼續下一次遞迴呼叫 當所有操作執行完畢後執行後續** 也就是執行緒快取中的**塊 依次取出資料 1--2--3 輸出到控制檯。

遞迴呼叫順序 count(3)}-執行後續**-->

count函式進入四次 最後執行快取**塊即輸出。

c#高手進!請教關於vs2010處理遞迴的問題。

14樓:禕正誼

為什麼會執行很多次?上面註釋的部分。

有趣的問題,一個有趣的問題

笑本身是人類表情中最美的表情,你現在覺得笑起來不漂亮是體現在表面的,或許是由於先天條件不是特別完美使得表面上看起來笑容不是很美觀。但是你忽略了一個很重要的問題,你愛笑這是一個多麼好的心理狀態,這樣一個心理狀態不但可以使你自己保持一個健康並且年輕的狀態,還可以給你周圍的人帶來同樣的狀態。或許由於你的笑...

一個有趣的C語言程式,求解釋,求大神給一個有趣的C語言程式,我真的想不出什麼

a 是格式化字串,替換後程式實際列印為 printf main 34,main 34 34的ascii是雙引號,最後列印為 main 34 理解上應該不是很困難,不過看上去比較複雜而已 求大神給一個有趣的c語言程式,我真的想不出什麼 hello world include int main retu...

有有趣的男朋友有什麼感覺,有一個有趣的男朋友有什麼感覺

哎喲陌陌 有一個有趣的男朋友是什麼體驗,不瞞你說,我的前男朋友就是一個特別有趣的人,兩個人相處,即使時間再長,也不會有倦怠期,永遠都有新鮮感,每天你都會發現,他新的可愛的地方,然後越來越喜歡他,他會想法設法的讓你高興,給你講笑話,帶你做有趣的事情,你們在一起永遠不會感覺到無聊,永遠有說不完的話題,他...