`

三个自然数的算法问题

阅读更多
假设有三个自然数A,B,C,关系是A+B=C。A与B的关系是B是A去掉一位后组成的新数(除去掉数字外,其他数字先后顺序不变)。
现在已知C,求A,这种算法题该怎么解?

例子:如果C等于34,那么A有三种情况,27,31,32

function IsPartOf(A, B: Integer): Boolean;
var
  S, T: String;
  i : Integer;
begin 
  Result := False;
  S := IntToStr(A);
  T := IntToStr(B);
  for i := 1 to Length(S) do 
  begin 
    if Copy(S, 1, i - 1) + Copy(S, i + 1, Length(S)) = T then 
      begin 
        Result := True;
        break;
      end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var  A, B, C: Integer;
begin
  C := 34;
  for A := C - 1 downto 10 do 
  begin 
    B := C - A;
    if B > A then break;
    if IsPartOf(A, B) then
      Memo1.Lines.Add(Format('%d = %d + %d', [C, A, B]));
  end;
end;

这种算法缺点在于位数一多起来计算速度慢,有谁有更好的算法?任何语言编写的都可以贴出来讨论讨论

分享到:
评论

相关推荐

    实验报告3页面置换算法演示.doc

    1. 分析内存管理办法中每个页面置换算法原理; 2. 掌握页面置换算法执行过程。 二、实验预备内容 1. 熟悉内存管理办法; 2. 熟悉页面置换算法原理; 3. 熟悉不同页面置换算法的置换过程。 要求自选编程语言实现最佳...

    三种算法求最大公约数-Java代码实现.zip

    求两个自然数m和n的最大公约数。 分别使用三种算法实现: //连续整除算法 //欧几里得算法 //分解质因数算法 适用人群:算法入门或对算法很感兴趣的朋友,算是对算法有个初步的认识。 使用场景:本资源使用案例是...

    求n个数中r个数的全部组合问题

    如图在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,设计一个算法求出,各齿轮各转多少圈后,这两对齿同时重逢。如图示。(说明:用a,b,c分别表示三个齿轮的齿数。) 算法设计: 给定三个齿轮的齿数a,b,c(a,b...

    最大公约数——三种算法

    这是一个算法设计的题目,要求以三种方式实现最大公约数的求法,包括欧几里得法,循环测试法,质因数分解法。代码中可能没有整理好,还有一部分的质因数求法的算法。大家共同努力。

    C语言常用算法(很全,内有详细例子)

    让多项式的每一项与一个变量n对应,n的值依次为1,3,5,7,...,从多项式的前一项算后一项,只需将前一项乘一个因子: (-x2)/((n-1)*n) 用s表示多项式的值,用t表示每一项的值,程序如下: #include void main()...

    算法课程的习题

    第一次作业: 写一个快速排序 写一个括号匹配程序,对一个只含括号的“{”,“}”,“[”,“]”,“(”,“)”的字符串进行匹配,例如...3.设n是一个正整数,要求将n分解为若干互不相等的自然数的和,并且乘积最大。

    1-5求n个数中r个数的全部组合问题

    如图在齿轮箱里三个齿轮互相衔接,某瞬间两对齿相遇,设计一个算法求出,各齿轮各转多少圈后,这两对齿同时重逢。如图示。(说明:用a,b,c分别表示三个齿轮的齿数。) 算法设计: 给定三个齿轮的齿数a,b,c(a...

    求最大公约数的三种算法

    求两个自然数m和n的最大公约数。 理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。

    java课程设计项目-Java语言编写的一个迷宫小游戏,涉及迷宫生成算法、深度、广度巡径等算法(源码+详细说明文档)

    该软件主要分为如下三个模块: 参数设置模块 按钮功能模块按钮功能模块 迷宫主界面模块迷宫主界面模块 软件各模块介绍 参数设置模块 迷宫大小相关参数: ROWS(即迷宫行数,默认设置为奇数,最小值为11,最大值为99...

    数字统计——算法分析(第三版)1.1

    一本书的页码从自然数 1 开始顺序编码直到自然数 n. 书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字 0. 例如, 第 6 页用数字 6 表示,而不是 06 或 006 等。数字计数问题要求对给定书 总页码 n, ...

    n枚硬币问题

    在n枚外观相同的硬币中, 有一枚是假币, 并且已知假币与真币的重量不同, 但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬 币, 设计一个高效的算法来检测出这枚假币。

    勾股数 1

    算法提高 勾股数 时间限制:1.0s 内存限制:256.0MB 问题描述 勾股数是一组三个自然数,a ,以这三个数为三角形的三条边能

    跟我学Java面向对象程序设计技术及应用——识别某个自然数是否为质数(素数)的Java程序实现示例.doc

    有三个或三个以上的约数的数是合数;有且只有一个约数的数既不 是质数也不是合数(比如自然数"1"既不是质数也不是合数)。 2 编程识别某个自然数是否为质数(素数)的Java程序实现示例 1 在MyEclipse开发工具中创建...

    leetcode走方格起点到终点-Coder:一些算法题目的练习

    这个题目涉及到使用最大堆/最小堆来解决问题 也可以用堆排序来解决 二叉树的遍历以及复原 遍历方式 代码全部列在。只写了递归的方式,迭代方式遇到需要的话再说吧。 (先、中、后均是指根节点的遍历顺序) 先序遍历 ...

    C#,二项式系数(Binomial Coefficient)的七种算法与源代码

    二项式系数(binomial coefficient),或组合数,在数学里表达为:(1 + x)ⁿ展开后x的系数(其中n为自然数)。从定义可看出二项式系数的值为整数。 二项式系数表为在我国被称为贾宪三角或杨辉三角,一般认为是北宋...

    C#,任意阶幻方(Magic Square)的算法与源代码

    它是将从一到若干个数的自然数排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。 中国不仅拥有幻方的发明权,而且是对幻方进行深入研究的国家。公元13世纪的数学家杨辉已经编制...

    delphi 开发经验技巧宝典源码

    0086 用回溯法找出n个自然数中取r个数的所有组合 58 0087 0~N位数的任意组合 59 0088 在数组中快速查找近似值 60 0089 实现直接插入法排序 61 第4章 函数应用 63 4.1 字符串处理函数 64 0090 使用...

    教学设计:计算机解决问题的过程.doc

     (三)探究把全班分成16个学习小组,每个小组的同学一 起探究、讨论问题。利用已学过的数学知识找出题目已知什么求什么、明确已知和未知 之间的关系和写出求解问题的解题步骤。并填写《计算机解决问题的过程》教学...

    辗转相除法 两个数的最大公约数.pdf

    辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(319,...

    C语言课程设计报告.docx

    C语言课程实验报告,通过十二个任务来体现算法的重要性,难易程度与蓝桥杯相似,文档配有粗略的解题思路和完成的代码截图。 结尾富有总结可供参考。 任务1: 将 1,2,…,9 共9个数分成3组,分别组成3个三位数,且使...

Global site tag (gtag.js) - Google Analytics