risen1968 2023-01-10 19:31 采纳率: 16.7%
浏览 32
已结题

VFP多循环嵌套,运算速度太慢,无法实现!

下面是VFP中FOR的多重循环,循环嵌套太多了,时间太慢了,根本无法完成(这里只是简单列出程序),请帮忙看看要完成这样的计算,用什么程序和算法才能快速完成(请具体给出程序代码)?

FOR A=1 TO 6
FOR B=A+1 TO 7
FOR C=B+1 TO 8
FOR D=C+1 TO 9
FOR E=D+1 TO 10
FOR F=E+1 TO 11
FOR G=F+1 TO 12
FOR H=G+1 TO 13

FOR I=1 TO 6
FOR J=I+1 TO 7
FOR K=J+1 TO 8
FOR L=K+1 TO 9
FOR M=L+1 TO 10
FOR N=M+1 TO 11
FOR S=N+1 TO 12
FOR T=S+1 TO 13
FOR AA=1 TO 6

FOR BB=AA+1 TO 7
FOR CC=BB+1 TO 8
FOR DD=CC+1 TO 9
FOR EE=DD+1 TO 10
FOR FF=EE+1 TO 11
FOR GG=FF+1 TO 12
FOR HH=GG+1 TO 13
IF && 判断符合条件直接跳出最顶层循环,不符合条件继续循环
RETURN
ENDIF 

ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR

ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR

ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR

RETURN

  • 写回答

8条回答 默认 最新

  • hurp13 2023-01-12 18:23
    关注

    这里的程序是用FOR循环嵌套来进行枚举的,因为循环层数太多,导致程序运行时间过长。

    要完成这样的计算,可以考虑使用其他算法来实现。例如,可以使用递归算法,在满足条件的情况下直接返回结果,而不是一直循环到最后。

    这里提供一个类似的递归算法的例子:

    FUNCTION recursive_calculate(a, b, c, d, e, f, g, h, i, j, k, l, m, n, s, t, aa, bb, cc, dd, ee, ff, gg, hh)
      IF 判断符合条件
        RETURN 结果
      ELSE
        FOR i = a to hh
          recursive_calculate(i, b, c, d, e, f, g, h, i,
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 1月23日
  • 已采纳回答 1月15日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多