求一个数值最佳行列数的算法,请大侠救急
本帖最后由 xtanxin 于 2010-1-11 02:26 编辑比如:
10 最佳行是4*3
20 =5*4
22=6*4
应该有不至于做一遍乘法口诀的算法吧. 没看懂LZ的意思 本帖最后由 afan 于 2010-1-11 01:57 编辑
回复 1# xtanxin
是不是这意思?
MsgBox(0, 10, hl(10))
MsgBox(0, 20, hl(20))
MsgBox(0, 22, hl(22))
Func hl($ns)
$b = Sqrt($ns)
If StringIsInt($b) Then
Return $b & '*' & $b
Else
$b1 = StringRegExpReplace($b, '\..+', '')
If Round($b) > $b Then
Return $b1 + 2 & '*' & $b1
Else
Return $b1 + 1 & '*' & $b1
EndIf
EndIf
EndFunc ;==>hl 对,是这个意思,
我也开始试过用平方根,四舍五入,但是,有偏差.数字越大就偏差越大,算晕了.没有办法了,到论坛求助了.
在做了一个自动的窗口.
根据INI里面的字段数量作为窗口的页框数量,字段里面的项目数量作为页框里面的按钮数量.数值为按钮的shell参数.
根据INI内容,就可以自动调节大小.这个是最后关键环节了.算晕了. 楼主把问题说的再明白点,实在是有些不大明白楼主到底要什么结果 楼主的意思可能是GUI上的按钮根据配置文件来定义大小和数量吧! 两数定积求最小和? 对,ceoguang 就是我要达到的目的,但是不同于常规,参数是在INI里面设定的,由于这个菜单是个插件或着是个安装程序管理器.因此
1.首先达到根据INI里面的分类字段定义tab页框,在根据里面的项目决定页框里面的按钮数量,
2.在达到,根据里面的子目录和目录里面的文件自动搜索.产生合理的窗口.
过程又延伸出旁外2个问题,我另开话题请教大家.
1. 在增加皮肤后,第一个页框里面的按钮画布出来,鼠标移动过去才显示,换过皮肤无效.
2. 按钮如何实现上面是图标,下面是文字的效果?是另一个控件还是需要在做特殊处理? 果然能“猜透”LZ意思的人不多,看来我是半仙……
……
p.s,做这功能还是定下列数比较好,不然,会很难看……
还有,超出可显示范围的处理,滚动条? 还有,超出可显示范围的处理,滚动条?
没有,
我的窗口和tabsheet的宽和高,都是依据行列调整,行列是依据分类中最多的那个按钮调整.
客户机有10个子目录,每个子目录就是一个TABSHEET的页框,
二级目录下面的名字就是页框里面按钮的名字,执行文件是和页框同名的.exe,或者是唯一的.
页:
[1]