创建未知数量的循环

2023-11-24

这是我要生成的简单代码 一组的所有可能组合 例子

1,2,3:

  • 展示: 123 132 213 第231章 第312章 321

我想创建可变数量的 for 循环,让用户确定给定字符串的长度...

有谁有想法吗...

提前致谢。

type
  TNumber = '0'..'9';

procedure TForm1.Button1Click(Sender: TObject);
var
  Numbers: array[0..3] of TNumber;
  a, b, c, d: Integer;
  s: string;
begin
  Numbers[0] := '1';
  Numbers[1] := '8';
  Numbers[2] := '7';
  Numbers[3] := '2';
  for a := low(Numbers) to High(Numbers) do
    for b := low(Numbers) to High(Numbers) do
      for c := low(Numbers) to High(Numbers) do
        for d := low(Numbers) to High(Numbers) do
        begin
          s := Numbers[a] + Numbers[b] + Numbers[c]  + Numbers[d];
          if
            (Occurrences('1', s) > 1 ) or
            (Occurrences('8', s) > 1 ) or
            (Occurrences('7', s) > 1 ) or
            (Occurrences('2', s) > 1 )
          then
            Continue
          else
            Memo1.Lines.Add(s);
  end;
end;

function TForm1.Occurrences(const Substring, Text: string): Integer;
var
  Offset: Integer;
begin
  Result := 0;
  Offset := PosEx(Substring, Text, 1);
  while Offset <> 0 do
  begin
    Inc(Result);
    Offset := PosEx(Substring, Text, offset + length(Substring));
  end;
end;

end.


这是一些产生您想要的输出的代码。您需要根据您的需要对其进行一些处理,但此递归解决方案中表达的概念很重要:

program Permuatations;

{$APPTYPE CONSOLE}

type
  TElements = '1'..'3';

procedure EnumerateCombinations(const Stem: string; Len: Integer);
var
  i: Integer;
  el: TElements;
  Used: set of TElements;
begin
  if Len=0 then
    exit;
  Used := [];
  for i := 1 to Length(Stem) do
    Include(Used, Stem[i]);
  for el := low(el) to high(el) do
  begin
    if el in Used then
      continue;
    if Len=1 then
      Writeln(Stem+el)
    else
      EnumerateCombinations(Stem+el, Len-1)
  end;
end;

procedure Main;
begin
  EnumerateCombinations('', 1+ord(high(TElements))-ord(low(TElements)));
end;

begin
  Main;
  Readln;
end.

Output:

123
132
213
231
312
321

如果你改变定义TElements,例如'1'..'4'然后你会看到 24 种可能的排列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建未知数量的循环 的相关文章

  • 循环访问多个 CSV 文件并生成多个输出

    我正在编写一些 python 脚本 它打开 csv 文件 定义数据帧 运行一些分析 例如聚合数据 拆分列 查找平均值等 并将分析的输出绘制在图表上 输出将是一个图形 png 文件 和一个 csv 文件 并在原始文件名末尾添加单词 ANALY
  • Delphi - 自XE8以来如何正确注册图形类?

    我正在编写一个 Delphi 包 它提供了一个新的自定义 TGraphic 对象 允许读取 VCL 组件 如 TImage 中的新图像格式 我最初使用 RAD Studio XE7 开发了这个包 并且运行良好 然而 我最近迁移到了较新的 R
  • 如何一次运行多个后台线程任务?

    我正在尝试循环遍历包含 2016 年 10 月日期的 String 对象数组 这意味着 31 个 String 对象 2016 年 10 月 1 日 2016 年 10 月 31 日 对于每个对象 我想从数据库检索一些数据并附加返回值 也是
  • 开源 Delphi 包可使用哪些项目选项?

    我写了一些 Delphi 代码 想在 GitHub 上分享 所有代码都根据需要包含在运行时和设计时包中 每个项目有许多项目选项需要设置 输出目录 搜索路径 编译选项等 我设法找到了一些适合我的情况的默认选项 但阅读此处的其他问答很明显有多个
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • 用另一个文件的标签为图表(ggplot2)中的标题添加下标

    在我的程序中 我有两个主要文件 第一个包含数据 第二个包含标签 或图形标题 文件总数1 数据 3 10000 3 32039232 1 0 0017290351 2 0 0002781092 3 10001 3 32101193 1 0 0
  • 如何将 REST API 与 FireMonkey 结合使用?

    我需要在 FireMonkey 中实现 REST API 来获取一些信息 但我不确定如何做到这一点 REST API使用OAuth2 我可以访问两个代码 Consumer Key和Consumer Secret 之后 我需要获得一个临时的
  • Excel - 确定排列的奇偶性

    我正在处理一个 Excel 工作表 需要确定大小数字的垂直数组的奇偶校验N 该数组包含来自的每个数字1 to N每一次正好一次 在这种情况下 奇偶校验被定义为将加扰数组转换为从小到大排序的数组所需的交换次数 例如 数组 3 1 2 4 具有
  • 如何在Delphi中下载一个非常简单的HTTPS页面?

    我尝试了在这里看到的代码 但它不适用于 HTTPS 我需要将此页面作为字符串下载 并在其上添加一些换行符 以便将信息按顺序放入 TMemo 中 怎么做 我尝试使用 Indy 但由于 SSL 问题而失败 我尝试了此页面的解决方案 如何将网页下
  • 如何计算数组中相同的值并将其存储到变量中?

    items explode product values is 4 2 4 2 2 4 unique items array unique items gives me 4 2 接下来应该给我 4 3 2 3 并将值的数量存储到变量中的代码
  • 处理 TShellListView 后代中的文件放置

    我正在尝试创建 TShellListView 的后代 它接受从 Windows 资源管理器中删除的文件 我想在组件定义中处理拖 放操作 而不必在任何使用该组件的应用程序中实现它 我找到了接受从 Windows 资源管理器中拖放的文件的示例
  • 如何在 Delphi DBLookupComboBox 中选择正确的项目

    我有一个数据库查找组合框连接到数据库查询 那部分工作正常 当我运行程序时数据库查找组合框填充有查询的结果 我想看看数据库查找组合框填充第一项 请选择 当 的时候程序第一次运行或者当一个新项目行动已启动 见下图 另外 如果我正在加载以前保存的
  • Scrapy - 持续从数据库中获取要爬取的url

    我想不断地从数据库中获取要爬行的网址 到目前为止 我成功地从基地获取了 url 但我希望我的蜘蛛继续从该基地读取 因为该表将由另一个线程填充 我有一个管道 一旦爬行 工作 就会从表中删除 url 换句话说 我想使用我的数据库作为队列 我尝试
  • 为什么未初始化的指针会导致内存访问冲突接近 0?

    据说often 但并非总是如此 当你在接近于零的内存位置 比如 89 美元 获得 AV 时 你就有了一个未初始化的指针 但我也在 Delphi 书籍中看到了这一点 嗯 或者它们都是由同一作者写的 Update 引自 Bob Swart 等人
  • delphi中如何实现多重继承?

    我正在对一个旧库进行完全重写 我不确定如何处理这种情况 为了便于理解 大家都欢呼自行车类比 我有以下课程 TBike 自行车本身 TBikeWheel 自行车的一个轮子 TBikeWheelFront and TBikeWheelBack
  • Javascript 循环内的事件处理程序 - 需要闭包吗?

    我正在使用一些我从别人那里接管的 html 和 Javascript 代码 该页面每十秒重新加载一个数据表 通过异步请求 然后使用一些 DOM 代码重新构建该表 有问题的代码看起来像这样 var blah xmlres getElement
  • Delphi AES 库 (Rijndael) 使用 KAT Vectors 进行测试

    对于这两个库 Delphi 加密概要 v 5 2 http code google com p delphidec TurboPower 密码箱 v 2 07 http lockbox seanbdurkin id au tiki list
  • flex 3 迭代对象值

    我有一个代表数据库表的对象 我想迭代这个对象并打印每个值 我可以用什么来做到这一点 我想在我的mxml而不是actionscript中执行此操作 对于每个对象属性我想创建一个输入字段 查找有关 Flex 3 循环的文档 如果你这样做 你会发
  • 如何更改 TPageControl 上标签的方向?

    我是 Delphi 的新手 再次强调 我在 1994 年就使用过 Delphi 我现在有 Delphi 2009 Pro 来自Java 我发现对象继承非常晦涩 我的用户想要选项卡位于左侧的选项卡式页面 但是 TPageControl 不允许
  • 如何调试仅在应用程序关闭时发生的崩溃? (德尔福)

    因此 经过最近的一些更改 我们发现我们最古老的应用程序之一有时会在关闭时崩溃 这会以 运行时错误 216 消息的形式或来自 Windows 错误报告的消息的形式表明应用程序已停止工作 该应用程序已经发出OutputDebugString 每

随机推荐

  • cattr_accessor 位于 Rails 之外

    我正在尝试使用谷歌搜索ruby 库 代码如下 但它抱怨 cattr accessor是一个未定义的方法 有什么想法可能是这样或者我如何解决它 require rubygems require google search GoogleSear
  • SQL“LIKE”语法

    我正在编写一个需要在 mysql 和 postgresql 上运行的应用程序 我必须使用like比较一些值 在mysql中LIKE它不区分大小写 在 PostgreSQL 中LIKE它区分大小写并且ILIKE它不区分大小写 如果匹配必须不区
  • HTML 视频自动播放而不静音(或者 youtube 是如何做到的)?

    我知道许多较新的浏览器现在禁用autoplay当视频不存在时muted或将其静音然后播放 如果没有用户交互 也无法调用视频播放 这是可以理解的 但我想知道 youtube 如何仍然能够用声音开始视频 我查了一下 他们确实使用了视频标签 只是
  • Laravel redirect::route 在页面加载之间显示一条消息

    我目前正在使用 Laravel 开发一个网络应用程序 直到最近该应用程序都运行得很好 我不知道是什么触发了它 但这是我遇到的问题的摘要 登录过去可以正常工作 因为我有一个 AccountController 可以执行以下操作 auth Au
  • 实现安全 nullptr

    我想让我的代码在旧版 C 使用 NULL 的 C 代码 和新的 C 11 标准 使用 nullptr 的 C 代码 上都可编译 我正在使用 GCC 但计划在完成最重要的事情时也为 VS 重新编译整个代码库 我是否应该期望 GCC 和 VS
  • 为什么 Files.lines (和类似的 Streams)不会自动关闭?

    Stream 的 javadoc 指出 流有一个 BaseStream close 方法并实现 AutoCloseable 但几乎所有流实例在使用后实际上并不需要关闭 通常 只有源是 IO 通道的流 例如由 Files lines Path
  • 通过多个索引引用 PHP 数组

    这可能是某种奇怪的较长捷径 如果我的思路有误 请纠正我 我有一个数据矩阵 如下所示 unique id url other random data unique id url other random data unique id url
  • 查找数据框中每行的前 N ​​列

    给定一个包含一个描述性列和 X 个数字列的数据框 对于每一行 我想识别具有较高值的 前 N 列 并将其保存为新数据框上的行 例如 考虑以下数据框 df pd DataFrame df index A B C D E F df option1
  • vb.net 应用程序出现 OutOfMemoryException

    在我的 VB Net 应用程序之一中 我在运行该应用程序时遇到错误 这个错误并不总是出现 所以我也无法重现该错误 也没有重现错误的确切顺序 堆栈 System OutOfMemoryException 内存不足 在 System Drawi
  • 在 Visual Studio 2012 中,Librarian 和 Linker 之间有什么区别?

    我正在将我的项目配置为使用 x86 和 x64 位进行构建 为此 我必须更改不同配置的目标计算机 我试图找到为我的本机 C 库设置目标机器的位置 我发现这个帖子 然而我没有Linker在本机 C 库项目中 我有 配置属性 gt Linker
  • 如何在VS 2010中指定单元测试结果的位置?

    我使用VS2010进行单元测试 有谁知道如何指定 VS 2010 放置 TestResults 的位置 默认情况下 它将 TestResults 文件夹放在解决方案文件夹中 我想将其移到其他地方 谢谢 射线 目前 无法从 IDE 内进行控制
  • PyQt4 到 PyQt5 怎么样?

    我的代码是用 PyQt4 创建的 我想将其转换为 PyQt5 我尝试过一些脚本来转换代码 但是 除了名字之外 什么都没有改变 为了使代码与 PyQt5 一起工作 我需要手动更改什么 这是我的代码的第一部分 import sys from p
  • 交叉引用和垃圾收集

    有一个具有广泛对象图的应用程序 该图主要由一组子图组成 这些子图通过唯一引用连接到图的其余部分 但在内部 每个这样的子图在对象之间都有一定数量的交叉引用 有时这样的子图需要被丢弃 只需将指向该子图的唯一引用设置为 null 就足够了吗 我担
  • QuerySet 对象在 Django Rest Framework 上没有属性“user”

    在 Django Rest Framework 上执行请求时 我无法序列化模型来获取结果 模型 py class Karfarma models Model user models OneToOneField User related na
  • C++:对 Singleton 类中的实例的未定义​​引用

    我目前正在尝试将工厂实现为单例 我实际上使用了单例模式的教科书示例 这是 h 文件 namespace oxygen class ImpFactory public static boost shared ptr
  • 如何保护 Android 应用程序中的秘密字符串?

    在我的 Android 应用程序中 我使用 Microsoft 翻译器 它需要两个字符串 clientId 和 clientSecret 目前 我对这两个字符串进行了硬编码 由于我发现classes dex可以转换为jar 然后 class
  • Python 相当于 Ruby 的each_slice(count)

    python 相当于 Ruby 的什么each slice count 我想为每次迭代从列表中取出 2 个元素 像 1 2 3 4 5 6 我想处理1 2然后在第一次迭代中3 4 then 5 6 当然 还有一种使用索引值的迂回方式 但是有
  • PHPMailer $mail->From 标头不适用于 gmail

    我使用以下代码在使用 PHP 邮件程序类提交表单后发送邮件https github com Synchro PHPMailer 邮件发送并成功接收 唯一不起作用的是以下内容 mail gt From email email是用户将在表单上输
  • 以编程方式将搜索栏快速添加到表格视图中

    我有一个文本字段 它代表一个表视图作为其输入视图 我想在这个表格视图中添加两件事 1 添加搜索栏 2 在表格视图顶部添加取消按钮 class enterYourDealVC UIViewController UITableViewDataS
  • 创建未知数量的循环

    这是我要生成的简单代码 一组的所有可能组合 例子 1 2 3 展示 123 132 213 第231章 第312章 321 我想创建可变数量的 for 循环 让用户确定给定字符串的长度 有谁有想法吗 提前致谢 type TNumber 0