[求助]帮忙看哈子了,一个作业题。。。。
www.dimcax.com
[求助]帮忙看哈子了,一个作业题。。。。
通过工具菜单->加载应用程序 可加载该程序,然后可直接在命令行输入相关命令运行。如需要每次启动时均加载该程序,则可以将该文件放在启动组中。
文件预览:
加载运行时候输入30、50后则出现乘积为负数的结果,怎么回事?小弟想不出来哈~~~~
d
看不明白?是不是阶乘?
踅摸
d
把你的问提取出来。当repeat第9次的时候就相当于执行下面的运算:
(* 398808576 39)
但不知为什么产生的是负数?
d
超过了长整型数的正数表达范围,(* 398808576. 39)就可得到正确结果
d
比如输入a=1,b=100则结果为0
这样才是超出了范围吧?我认为超出范围返回结果为0,不能是负数吧?
d
是整型数超范围引起的。这样处理:
(repeat nn
(setq cj (* 1. cj num_cr));此句修改
(setq num_cr (1+ num_cr))
)
(prin1)
(setq str1(strcat"a="(itoa num_s)))
(setq str2(strcat"b="(itoa num_e)))
(setq str3(strcat"乘积="(rtos cj 2 0)));此句修改