作者MOONY135 (谈无慾)
看板C_and_CPP
标题Re: [问题] 穷举法 未知数位置不定
时间Sat May 20 23:03:06 2017
※ 引述《ptt0720 (湿湿)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: macOS
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 问题(Question):
: http://i.imgur.com/Lu5Pqib.jpg
: 喂入的资料(Input):
: 程式码(Code):(请善用置底文网页, 记得排版)
: 补充说明(Supplement):
: 看起来要穷举没错
: 但是因为未知数位置不定
: 所以我打算在字串内读ascii code
: 不是数字就要判断
: 但是我要如何组合完输入的那三行等式
: 而且未知数也有可能是好几个或一个
: 我跑未知数的回圈也是个问题
: 有没有大大能提供一些不同的思维呢
Z的位数一定大於等於 X OR Y
所以第一个FOR回圈只要去扫 Z里面有几个非数字
(不考虑第一个位数是参数的状况 这边要另外写 看完下面算法你再去想想看好了)
所以假设 Z = 1AB2C
A & B & C的 range都会是0~9
只要考虑 for回圈是000~999 然後依序填入就好
for回圈的range会是 n=参数 10^n-1
然後比对x 跟 y哪个比较小
然後 z%min(x,y)==0之後 得到的z 再去跟max(x,y)做参数的
substring即可
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.46.32
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1495292589.A.39D.html
1F:→ pttworld: x, y也有非数字。文中的比对是什麽意思。 05/20 23:08
长度
这样for 回圈可以跑得比较少一点
2F:→ pttworld: 如产生x or y也是回圈,在回圈未定义几层的情形, 05/20 23:14
3F:→ pttworld: 跑回圈如何写。范例只是简单案例。 05/20 23:15
4F:→ pttworld: 而这种方法可以仅描述暴力法排0到9。 05/20 23:17
X AND Y的回圈比照Z办理阿...
可推论的出来要跑几圈...
可以举个反例给我吗...复杂案例是?
※ 编辑: MOONY135 (111.251.46.32), 05/20/2017 23:22:57
还是你的复杂案例是 A=123之类的
※ 编辑: MOONY135 (111.251.46.32), 05/20/2017 23:23:59
5F:→ pttworld: 二组以上xyz,非数字数量不同,程式写法。 05/20 23:45
6F:→ pttworld: 另外是乘会比除快。乘的做法只要跑x和y, 除的做法要跑z 05/20 23:48
7F:→ pttworld: 加x或y之一。x+y长度相当於z。 05/20 23:48
这样看起来乘的好像真的比较快
※ 编辑: MOONY135 (111.251.46.32), 05/20/2017 23:51:36