asp.net求3位不同数字的组合数 简单的: 复制代码 代码如下:public partial class _Default : System.Web.UI.Page { string m1 = ""; protected void Page_Load(object sender, EventArgs e) { string n = "123"; string m = ""; zuhe(n); for (int j = 2; j > -1; j--) { m = m + n[j]; } zuhe(m); } private void zuhe(string ssel) { for (int i = 0; i < ssel.Length; i++) { m1 = ssel + ssel.Substring(i, 1); Response.Write(m1.Remove(i,1) + "
"); } } } CSDN的(xiaoshen1127 ):WINFORM版 复制代码 代码如下:using System; using System.Collections.Generic; namespace ZuHeShu { class Program { static void Main(string[] args) { Program p = new Program(); Console.WriteLine("******************************组合数***********************************"); Console.WriteLine("请任意输入一个整数:"); string num = Console.ReadLine(); try { long.Parse(num); List als = new List(); als = p.GetData(string.Empty, num.Trim(), als); p.Display(als); Console.WriteLine("\nY-Enter:继续"); if (Console.ReadLine().Trim().ToLower() == "y") { Console.Clear(); Main(args); } } catch { Console.Clear(); Console.WriteLine("请输入数字!"); Main(args); } } private List GetData(String strBase, String strSel, List alRet) { if (strSel.Length == 1) { string temp=strBase + strSel; if (!alRet.Contains(temp)&&!temp.StartsWith("0")) { alRet.Add(temp); } } else { for (int i = 0; i < strSel.Length; i++) { GetData(strBase + strSel.Substring(i, 1), strSel.Remove(i, 1), alRet); } } return alRet; } public void Display(List dals) { int i = 1; int a = dals.Count; if (a == 0) { Console.WriteLine("该数没有其他组合情况"); } else { Console.WriteLine("不同的组合数共有" + a + "个,如下"); foreach (string number in dals) { Console.Write(number + "\t"); if (i++ % 5 == 0) { Console.WriteLine(); } } } } } }