| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 54 人关注过本帖
标题:凑数求助
只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2242
专家分:3940
注 册:2007-4-27
结帖率:95.89%
收藏
 问题点数:100 回复次数:2 
凑数求助
ls.rar (1.22 KB)


现有一列数值,共317个数,要凑出 19138.92 ,在317个数值中,挑哪几个正好能凑到 19138.92   
详见附件
求大侠,能给出代码,不胜感激,谢谢!
搜索更多相关主题的帖子: 个数 代码 附件 不胜感激 一列 
昨天 14:23
dglhz
Rank: 2
来 自:东莞南城
等 级:论坛游民
威 望:1
帖 子:14
专家分:64
注 册:2022-5-7
收藏
得分:0 
笨方法:
SELECT ddje,0 s1 FROM ls ORDER BY ddje desc INTO CURSOR tmp11 readwrite
LOCAL _je0,_je1,_v11,_r11
_v11=0
_je0=19138.92

SELECT tmp11
FOR _r11= 1 TO RECCOUNT('tmp11')
_je1=0
    SCAN FOR s1<9
        IF _je1=0
            _je1=_je0-ddje
        ELSE
            IF _je1-ddje<0
                LOOP
            ELSE
                _je1=_je1-ddje
            ENDIF
        ENDIF

        DO CASE
        CASE _je1>0
            REPLACE s1 WITH 1
        CASE _je1=0
            REPLACE s1 WITH 1
            _v11=1
            exit
        OTHERWISE
            EXIT
        ENDCASE
    ENDSCAN
    IF _v11=1
        SELECT ddje FROM tmp11 WHERE s1=1 INTO CURSOR tmp12
        EXIT
    ELSE
        REPLACE s1 WITH 9 FOR RECNO()=_r11
    ENDIF
endf
IF _v11=1
    MESSAGEbox('凑数成功')
    SELECT tmp12
    brow
ELSE
    MESSAGEbox('凑数失败')
ENDIF
昨天 15:46
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1833
专家分:3519
注 册:2012-2-29
收藏
得分:0 
回复 2楼 dglhz
可行,谢谢分享!
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2025-1-18 06:25编辑过]

9 小时前
快速回复:凑数求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017882 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved