问题来源: http://www.cnblogs.com/del/archive/2010/04/09/1708619.html#1798022



问题描述 - 给出几组数值范围, 如:
组一: 2..5
组二: 3..6
组三: 1..8
组四: 2..10
...

然后从每组中选一个数字, 依次排列成一个新的数字, 需要列出所有排列方式.



实现代码:


typeTArr = array of array[0..1] of Byte;procedure RangeNums(arr: TArr; List: TStrings);
vari,j,x,y,m,n,k,c,count: Integer;
{i,j,x,y 用于循环}
{m,n     分别用于前后循环的次数}
{k       是从数组中取出的值}
{c       是 List 的索引}
{count   是 arr 的维数}
begincount := Length(arr);for i := 0 to count - 1 dobeginm := 1; n := 1; c := 0;{先获取 m、n}for j := 0 to count - 1 dobeginif j < i then m := m * (arr[j,1] - arr[j,0] + 1);if j > i then n := n * (arr[j,1] - arr[j,0] + 1);end;{循环与排列}if i = 0 thenfor k := arr[i,0] to arr[i,1] do for y := 0 to n - 1 do List.Add(IntToStr(k))else beginfor x := 0 to m - 1 do for k := arr[i,0] to arr[i,1] do for y := 0 to n - 1 dobeginList[c] := List[c] + IntToStr(k);Inc(c);end;end;end;
end;//测试
procedure TForm1.Button1Click(Sender: TObject);
vararr: TArr;List: TStrings;
beginSetLength(arr, 3);arr[0,0] := 2; arr[0,1] := 5;arr[1,0] := 3; arr[1,1] := 6;arr[2,0] := 1; arr[2,1] := 8;List := TStringList.Create;RangeNums(arr, List);List.SaveToFile('C:\Temp\Nums.txt');List.Free;
end;

本例测试结果:


231 232 233 234 235 236 237 238
241 242 243 244 245 246 247 248
251 252 253 254 255 256 257 258
261 262 263 264 265 266 267 268
331 332 333 334 335 336 337 338
341 342 343 344 345 346 347 348
351 352 353 354 355 356 357 358
361 362 363 364 365 366 367 368
431 432 433 434 435 436 437 438
441 442 443 444 445 446 447 448
451 452 453 454 455 456 457 458
461 462 463 464 465 466 467 468
531 532 533 534 535 536 537 538
541 542 543 544 545 546 547 548
551 552 553 554 555 556 557 558
561 562 563 564 565 566 567 568

岛主 同学给我出的算法题相关推荐

  1. Homebrew作者面试Google被拒,只因写不出一道算法题

    相信很多人听说过关于Max Howell(Homebrew的作者)的故事: Max Howell在Google面试,但Google拒绝了他,给出的答复是:"虽然我们90%的工程师都用你写的软 ...

  2. 正弦定理和余弦定理_考查正余弦定理运用,我的班很多同学做不出第2题

    最近在给高一的学生复习正余弦定理,发现公式各位都用得很溜,但是一碰到实际的问题,比如判断三角形的形状,正余弦定理结合求边长等等,那可真是能要了不少同学的命,时不时再个三家恒等变换里面那十几个公式结合一 ...

  3. LeetCode 93. Restore IP Addresses--面试算法题--Python解法

    题目地址:Restore IP Addresses - LeetCode Given a string containing only digits, restore it by returning ...

  4. 如何出(改编)一道ACM算法题?

    本文背景 本人算法能力一般,但是为省赛和区域赛网络赛出过几道题,总结了一些自己的经验,希望与大家分享.本文不涉及具体的算法题,都是一些理论性的想法和一些建议. 题源 如果你能在没有题源的情况下自己想出 ...

  5. 【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数

    找出最大连续自然数个数 搜集者:江南烟雨 E-Mail:xiajunhust@gmail.com 本题为网易互联网暑期实习生笔试算法题. 凭记忆记录下来的题目,如违反网易版权请邮件联系,本人会删除. ...

  6. 以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。给出队满条件和相应的如对和出队算法。

    以域变量rear和length分别指示循环队列中队尾 元素的位置和内含元素的个数.给出队满条件和相应的如对和出队算法. /* 以域变量rear和length分别指示循环队列中队尾 元素的位置和内含元素 ...

  7. 考研预报名一直显示服务器错误,2021考研预报名 | 往年预报名出错的同学,问题出在这里!...

    原标题:2021考研预报名 | 往年预报名出错的同学,问题出在这里! 今天就是9月24日了,考研预报名即将开始,不知道大家准备好了吗? 2021年统考考生需准备的网报信息: https://yz.ch ...

  8. 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

    对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

  9. php算法求出一个数可以被分解成多少个_面试时写不出排序算法?看这篇就够了(下)...

    昨天给大家介绍了面试时到底应该如何写出排序算法,也简单的介绍了一些方法 今天我们继续为大家介绍 前言 递归是一种解决问题的方法,它解决问题的各个小部分,直到解决最初的大问题.通常涉及函数调用自身. 能 ...

  10. 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)...

    (一).说明 功能类似Windows 操作系统自带的记事本.  一个WinForm记事本程序(包含主/下拉/弹出 菜单/打开保存对话框等控件用法以及记事本菜单事件的具体代码) (二).图片示例 (三) ...

最新文章

  1. goahead content-length为0时的问题
  2. Java Review - SimpleDateFormat线程不安全原因的源码分析及解决办法
  3. AWS s3 V4签名算法
  4. 优地机器人厂家_2019中国人工智能机器人企业TOP30榜单发布 优地科技跻身前十...
  5. javascript特效_如何在网页添加鼠标点击特效
  6. Linux /etc/rc.d 下面 rc${runlevel}.d rc.local init.d 区别
  7. 网上路径的图片有时候遍历不出来_最短路径问题(1)——Dijkstra算法
  8. 连通子图什么意思_一道物理竞赛题揭开“希罗喷泉”的神秘面纱,到底什么物理原理?...
  9. 远程源已存在于“ git push”到新存储库中
  10. IS-IS详解(十)——IS-IS 骨干区域与非骨干区域访问进阶
  11. Python 获取车票信息
  12. 工程总承包(EPC)项目经理培训项目背景介绍
  13. 计算机网络术语sonet,计算机网络(第七版)谢希仁-第2章 物理层(示例代码)
  14. python牛顿法算立方根_使用牛顿法迭代求平方根与立方根
  15. eds能谱图分析实例_成分分析的四大神器—XRF、ICP、EDX和WDX
  16. 大数据情报2018-6-19
  17. HTML——疑难杂症总结
  18. flickr之我们心中的点子
  19. CRMEB知识付费系统安装支付宝支付报错invalid [default store dir]: /tmp/
  20. R6025 - pure virtual function call

热门文章

  1. mysql能将查询结果与表左查询_mysql重点,表查询操作和多表查询
  2. python文件路径的操作
  3. neovim--ubuntu安装
  4. windows service 2008 R2 升级 sp1遇到的问题
  5. centos7 split 切割文件_CentOS 大文件夹按固定块大小分割打包实验
  6. jsarraybufferdaya释放_聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer
  7. 目前服务器操作系统版本,Windows操作系统的版本选择
  8. package.json详解
  9. Python 中的 if __name__ == '__main__'
  10. [转载]JUnit3 与 JUnit4 的区别