求問一個數字有幾組可能可被哪些數字相加 |
尚未結案
|
adrain
一般會員 發表:39 回覆:28 積分:13 註冊:2004-07-27 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
adrain
一般會員 發表:39 回覆:28 積分:13 註冊:2004-07-27 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
adrain 你好
以下範例使用遞迴方式產生你要的資料,死怕無法處理太大的數值喔! 在 Form上放個TBitbtn及TMemo物件,然後在Tbitbtn.OnClick事件寫入下列程式片段即可 procedure TForm1.BitBtn3Click(Sender: TObject); Procedure AA(Value:Integer;Strs:TStrings); var i, j : Integer ; SubStrs : TStrings ; Str : String ; Seed : Integer ; Begin If Value<=1 Then Exit; SubStrs := TStringList.Create; For i := 1 To Value-1 Do Begin SubStrs.Clear; AA(Value-i,SubStrs); For j := 0 To SubStrs.Count-1 Do Begin Str := IntToStr(i) ',' SubStrs[j]; If Strs.IndexOf(Str) = -1 Then Strs.Add(Str); End; Strs.Add(IntToStr(i) ',' IntToStr(Value-i)); End; SubStrs.Free; End; begin Memo1.Lines.Clear; AA(SpinEdit1.Value,Memo1.Lines); end; 範例中沒檢查反向的配對是否重複,需要的話請自行加上囉!_______________________________________ 深藍的魚,祝您好運..........連連 |
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
我想這會是你要的
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Clear; SumNumber(StrToInt(Trim(Edit1.Text)), StrToInt(Trim(Edit1.Text)), Trim(Edit1.Text) '='); end; procedure TForm1.SumNumber(iTotal, iValue: Integer; Str: String); var i: Integer; begin for i:=iTotal downto 1 do begin if i<=iValue then if i = iTotal then Memo1.Lines.Add(Str IntToStr(i)) else SumNumber(iTotal-i, i, Str IntToStr(i) ' '); end; end; |
adrain
一般會員 發表:39 回覆:28 積分:13 註冊:2004-07-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |