明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1770|回复: 7

连乘积

[复制链接]
发表于 2005-8-31 16:20 | 显示全部楼层 |阅读模式

我想实现几个数连乘积,如何用lsp程序实现呢?请高手帮小弟一下。

举个例子来说:

1*2*3*4*5*6*7*8*9*10=4485600

我想这样来实现:选中数字1 2 3 4 5 6 7 8 9 10 ,然后选中任意一个数字x , 那么x就变成了前面选中数字的连乘积。恳请高手出招......

发表于 2005-8-31 17:48 | 显示全部楼层
用循环语句就可以实现吧!比如“REPEAT”语句
发表于 2005-8-31 19:12 | 显示全部楼层
and2008发表于2005-8-31 16:20:00回复:(and2008)连乘积 我想实现几个数连乘积,如何用lsp程序实现呢?请高手帮小弟一下。 举个例子来说: 1*2*3*4*5*6*7*8*9*10=4485600&...


1*2*3*4*5*6*7*8*9*10=4485600

怎么算的能出这个结果?呵呵……

试试szys程序:

dispbbs.asp?BoardID=26&ID=39446

发表于 2005-8-31 21:53 | 显示全部楼层

(defun ljx(x)

(setq i 1

lj  1)

(while (< i (1+ x))

(setq lj (* lj i))

(setq i (1+ i))

)

(eval lj)

)

试试这个,输入x,即返回包括x本身在内的连积,不知道是不是你要的

发表于 2005-9-1 08:52 | 显示全部楼层
下面程序不知是否能满足楼主的要求。
  1. ;明经 ZZXXQQ
  2. ;几个数连乘积
  3. ;选中数字1 2 3 4 5 6 7 8 9 10,然后选中任意一个数字x,
  4. ;那么x就变成了前面选中数字的连乘积。
  5. (DEFUN C:PRODUCT (/ ZIN PRU SS I ENT)
  6. (SETQ ZIN (GETVAR "DIMZIN"))
  7. (SETQ PRU 1.0)
  8. (PRINC "\nSelect text(s) : ")
  9. (WHILE (SETQ SS (SSGET (LIST (CONS 0 "TEXT"))))
  10.   (SETQ I 0)
  11.   (REPEAT (SSLENGTH SS)
  12.    (SETQ ENT (ENTGET (SSNAME SS I)) I (1+ I)
  13.          PRU (* (ATOF (CDR (ASSOC 1 ENT))) PRU))
  14.   )
  15.   (PRINC "\nSelect text(s) : ")
  16. )
  17. (PRINC "\nSelect a text : ")
  18. (IF (SETQ SS (SSGET (LIST (CONS 0  "TEXT")))) (PROGN
  19.   (SETQ ENT (ENTGET (SSNAME SS 0))
  20.         PRU (* (ATOF (CDR (ASSOC 1 ENT))) PRU)
  21.         ENT (SUBST (CONS 1 (RTOS PRU 2 3)) (ASSOC 1 ENT) ENT))
  22.   (SETVAR "DIMZIN" 8)
  23.   (ENTMOD ENT)
  24.   (SETVAR "DIMZIN" ZIN)
  25. ))
  26. (PRINC)
  27. )
复制代码
 楼主| 发表于 2005-9-1 09:11 | 显示全部楼层
多谢楼上的,我加载了你的程序,运行后完全正常。只不过最后一个数字也乘了进去,如果不乘进去就更完美了。也没关系,大不了我最后一个数字都定义为1就是了。在此表示感谢!
发表于 2005-9-1 10:09 | 显示全部楼层
and2008发表于2005-9-1 9:11:00多谢楼上的,我加载了你的程序,运行后完全正常。只不过最后一个数字也乘了进去,如果不乘进去就更完美了。也没关系,大不了我最后一个数字都定义为1就是了。在此...
再改一下。
  1. ;明经 ZZXXQQ
  2. ;几个数连乘积
  3. ;选中数字1 2 3 4 5 6 7 8 9 10,然后选中任意一个数字x,
  4. ;那么x就变成了前面选中数字的连乘积。
  5. (DEFUN C:PRODUCT (/ ZIN PRU SS I ENT)
  6. (SETQ ZIN (GETvar "DIMZIN"))
  7. (SETQ PRU 1.0)
  8. (PRINC "\nSelect text(s) : ")
  9. (WHILE (SETQ SS (SSGET (LIST (CONS 0 "TEXT"))))
  10.   (SETQ I 0)
  11.   (REPEAT (SSLENGTH SS)
  12.    (SETQ ENT (ENTGET (SSNAME SS I)) I (1+ I)
  13.          PRU (* (ATOF (CDR (ASSOC 1 ENT))) PRU))
  14.   )
  15.   (PRINC "\nSelect text(s) : ")
  16. )
  17. (PRINC "\nSelect a text : ")
  18. (IF (SETQ SS (SSGET (LIST (CONS 0  "TEXT")))) (PROGN
  19.   (SETQ ENT (ENTGET (SSNAME SS 0))
  20.         ENT (SUBST (CONS 1 (RTOS PRU 2 3)) (ASSOC 1 ENT) ENT))
  21.   (SETvar "DIMZIN" 8)
  22.   (ENTMOD ENT)
  23.   (SETvar "DIMZIN" ZIN)
  24. ))
  25. (PRINC)
  26. )
复制代码
 楼主| 发表于 2005-9-1 14:33 | 显示全部楼层

好了,这个已经是很完美的了。非常感谢黑猫!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-22 00:51 , Processed in 0.407367 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表