求助斑竹 判断奇偶性?(已完结)
本帖最后由 simon8001 于 2011-6-14 09:21 编辑判断a是奇数还是偶数,如果是偶数保持值不变,如果是奇数则返回a+1的值。
程序如下:
(defun c:aa()
(setq a (getint"\n输入一个整数<5>:"))
(if (null a) (setq a 5))
(setq n 0)
(setq b a)
(while b
(repeat n ;;重复的次数这里我没想好
(setq b (- b (* 2 n)))
(setq n (1+ n))
(if (= b 1)
(progn
(setq b(+ 1 b)))
)
)
)
(princ "\n"b)
有问题 希望斑竹赐教哈!
(if (= (rem a 2) 1) "奇数" "偶数") 本帖最后由 simon8001 于 2011-5-27 11:35 编辑
回复 winabcd 的帖子
谢谢!
(defun c:aa()
(setq a (getint"\n输入一个整数<5>:"))
(cond (if(= (rem a 2)1) (setq a (+ a 1)))
(t (setq a(+ a 0)));;; 奇数的时候能返回+1的值 但是偶数的时候 是nill 空值
)
)
用(rem a2)余数来看。 0为偶,1为奇。 本帖最后由 simon8001 于 2011-5-27 11:52 编辑
回复 lenlenq 的帖子
首先谢谢你
我知道您说的 0为偶数 1为奇数
现在是奇数的返回值可以+1但是偶数时的值却为nill了有些不懂了!
(defun c:aa()
(setq a (getint"\n输入一个整数<5>:"))
(cond (if(= (rem a 2)1) (setq a (+ a 1)))
(t (setq a(+ a 0)))
)
)
本帖最后由 Gu_xl 于 2011-5-27 12:28 编辑
回复 simon8001 的帖子
(defun c:aa ()
(setq a (getint "\n输入一个整数<5>:"))
(if (null a)
(setq a 5)
)
(cond ((= (rem a 2) 1) (+ a 1))
(t a)
)
)
本帖最后由 simon8001 于 2011-5-27 13:36 编辑
回复 Gu_xl 的帖子
谢谢! 斑竹 !
另 您用的 LISP版本是多少 我cad04的 lisp 好像调不出来行号!
本帖最后由 lenlenq 于 2011-5-28 19:23 编辑
好像那个版本的都没有行号的。 回复 lenlenq 的帖子
嗯 这几天我也看了好多的论坛 确实没发现 有行号的版本! 回复 simon8001 的帖子
_$ (setq a 5)
5
_$ (rem a 2)
1
_$ (setq a 4)
4
_$ (rem a 2)
0
_$
没有出现你讲的nil
页:
[1]
2