您的位置:程序门 -> vb -> 基础类



一道虽然简单 但很多人都有错的算法 问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一道虽然简单 但很多人都有错的算法 问题[已结贴,结贴人:jaylongli]
发表于:2007-05-17 15:05:08 楼主
2、有个321米长的钢材料,把截取成两种规格的短料,规格口,易的长度分别为17米和27米,问a,b个分成多少段后,残余的材料最少啊?


这题的应该怎样判断在什么样的情况     为最少啊?
入口在哪啊?
发表于:2007-05-17 15:26:071楼 得分:10
private   sub   command3_click()
'321,17,27

        dim   i   as   integer
        dim   j   as   integer
        const   intlen   as   integer   =   321
        const   aper   as   integer   =   17
        const   bper   as   integer   =   27
        dim   imin   as   integer
        dim   ileft   as   integer

        imin   =   99
        for   i   =   0   to   int(intlen   /   aper)
                ileft   =   (intlen   -   aper   *   i)   mod   bper
                if   ileft   <   imin   then
                        imin   =   ileft
                        j   =   i
                end   if
        next
        msgbox   j   &   ": "   &   imin
end   sub
发表于:2007-05-17 15:30:582楼 得分:0
'修改了下msgbox.
private   sub   command3_click()
'321,17,27

        dim   i   as   integer
        dim   j   as   integer
        const   intlen   as   integer   =   321
        const   aper   as   integer   =   17
        const   bper   as   integer   =   27
        dim   imin   as   integer
        dim   ileft   as   integer

        imin   =   99
        for   i   =   0   to   int(intlen   /   aper)
                ileft   =   (intlen   -   aper   *   i)   mod   bper
                if   ileft   <   imin   then
                        imin   =   ileft
                        j   =   i
                end   if
        next
        msgbox   intlen   &   "= "   &   aper   &   "* "   &   j   &   "+ "   &   bper   &   "* "   &   int((intlen   -   aper   *   j)   /   bper)   &   "余 "   &   (intlen   -   aper   *   j)   mod   bper
end   sub
发表于:2007-05-21 15:27:103楼 得分:0
这里imin是用来存放不同分割方法的残余材料长度,   保留历次最小的那个
j,   用来存放当前残余最小的分割方法(即a材料多少段)
发表于:2007-05-21 15:31:154楼 得分:0
那imin=99
是你自己设置的一个用来比较大小的值
对不对
发表于:2007-05-21 15:37:325楼 得分:0
是的,   这里只要比最小的   17   大就可以了
因为第一次循环的时候,   这个值肯定会被重新赋值
具体见我回的信息。


快速检索

最新资讯
热门点击