代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
排列组合(回溯法)
作者:
冥想_
/ 发布于
2014/6/17
/
578
class Program { private static List<string> TargetRoad = new List<string>(0); private static List<string> PassedRoad = new List<string>(0); private static List<int> InputArray = new List<int>(); private static string road = string.Empty; static void Main() { for (int Index = 1; Index <= 20; Index++) { InputArray.Add(Index); } TraceBack(road); foreach (var item in TargetRoad) { System.Diagnostics.Trace.WriteLine(item); } foreach (var item in PassedRoad) { System.Diagnostics.Trace.WriteLine(item); } } static void TraceBack(string CurrentRoad="", int NextStep = 0) { int Index = 0; if (NextStep > 0) { Index = NextStep; } for (; Index < InputArray.Count(); Index++) { int num = 0; if (!string.IsNullOrEmpty(CurrentRoad) && !CurrentRoad.Contains(",")) { num = int.Parse(CurrentRoad); } if (CurrentRoad.Contains(",")) { string[] array = CurrentRoad.Split(new char[] { ',' }); foreach (var item in array) { num += int.Parse(item); } } if (InputArray[Index] + num == 20) { string TempStrNum = string.Empty; if (string.IsNullOrEmpty(CurrentRoad)) { TempStrNum = InputArray[Index].ToString(); } else { TempStrNum = CurrentRoad + "," + InputArray[Index].ToString(); } if (!TargetRoad.Exists(a => a.Equals(TempStrNum))) { TargetRoad.Add(TempStrNum); if (CurrentRoad.Contains(",")) { CurrentRoad = CurrentRoad.Remove(CurrentRoad.LastIndexOf(',')); } else { CurrentRoad = string.Empty; } } break; } if (InputArray[Index] + num > 20) { if (CurrentRoad.Contains(",")) { CurrentRoad = CurrentRoad.Remove(CurrentRoad.LastIndexOf(',')); } else { CurrentRoad = string.Empty; } break; } if (InputArray[Index] + num < 20) { string TempValue = string.IsNullOrEmpty(CurrentRoad) ? InputArray[Index].ToString() : CurrentRoad + "," + InputArray[Index].ToString(); if (!PassedRoad.Exists(a => a.Equals(TempValue))) { CurrentRoad = TempValue; PassedRoad.Add(CurrentRoad); TraceBack(CurrentRoad, Index + 1); } else { break; } } } } }
试试其它关键字
排列组合
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
冥想_
贡献的其它代码
(
22
)
.
通过IP地址获取当前地理位置(省份,城市等)的接口
.
URL重定向
.
Java字符串的Hash算法
.
邮件发送
.
通过获取头信息判断图片类型
.
从一个php文件向另一个地址post数据
.
监听Socket
.
获取在线ip
.
识别文件末尾字符
.
获取选中文本(非ie)
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3