资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Collections;/*名称:组合数的递归实现 作者:陈长安 时间:2010-8-2 说明:1 程序具有通用性,给的数据不要求大小关系和顺序 2 输入字符串“1,2,3”,输出“1”“2”“3”“12”“13”“23”“123” 3 编程思想:递归入口是(“1,2,3”,“0”) 每一层都要遍历到所有的递归,以不存在的0开始,是为了把所有情况都含在虚拟的0开头的情况,这样一个递归调用就找到所有的串,返回时把0屏蔽掉即可 注意:输入的字符串要以英文的逗号隔开 */namespace 构造那个东东没分割的字符串 class Program static void Main(string args) Program a = new Program(); string tmpStr = 1,2,3,4,5,6,7; ArrayList result_list = a.comb(tmpStr, 0); string result_str = ; for (int w = 0; w result_list.Count; w+) result_str =result_str+ result_listw.ToString()+n; Console.Write(result_str); Console.Read(); /4取3 ”1,2,3,4“ 变成“1,2,3”“1,2,4”“1,3,4”“2,3,4” ArrayList comb(string leave, string now) string before1 = now; /now不为0时:返回时要加个“now,”并且在now这一层,底层返回的字符串们都要在开头补上“now,” if (now != 0) if (leave != ) /save_lists存返回的动态数组 动态数组里存的是字符串。 ArrayList save_lists = new ArrayList(); string partition = leave.Split(new char , , StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i partition.Length; i+) string leave1 = ; for (int k = i + 1; k partition.Length; k+) if (k = partition.Length) leave1 = ; break; leave1 = leave1 + partitionk.ToString() + ,; /递归在这 ArrayList list = comb(leave1, partitioni); for (int q = 0; q list.Count; q+) save_lists.Add(before1 + , + listq.ToString(); save_lists.Add(before1 + ,); return save_lists; else ArrayList a = new ArrayList(); a.Add(before1 + ,); return a; /now是0 (“1,2,3,4”,“0”)这种,是该返回什么返回什么 else /save_lists存返回的动态数组 动态数组里存的是字符串。 ArrayList save_lists = new ArrayList(); string partition = leave.Split(new char , , StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i partition.Length; i+) string leave1 = ; for (int k = i + 1; k partition.Length; k+) if (k = partition.Length) leave1 = ; break; leave1 = leave1 + partitionk.ToString() + ,; /核心递归在这 ArrayList list = comb(leave1, partitioni); for (int q = 0; q list.Count; q+) save_lists.Add(listq.ToString(); return save_lists;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号