simon8001 发表于 2011-5-27 10:45:10

求助斑竹 判断奇偶性?(已完结)

本帖最后由 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)

有问题   希望斑竹赐教哈!   

winabcd 发表于 2011-5-27 10:55:47

(if (= (rem a 2) 1) "奇数" "偶数")

simon8001 发表于 2011-5-27 11:06:19

本帖最后由 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 空值
)
)

lenlenq 发表于 2011-5-27 11:44:58

用(rem   a2)余数来看。 0为偶,1为奇。

simon8001 发表于 2011-5-27 11:49:26

本帖最后由 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:25:39

本帖最后由 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:34:53

本帖最后由 simon8001 于 2011-5-27 13:36 编辑

回复 Gu_xl 的帖子

谢谢!   斑竹 !
另 您用的 LISP版本是多少 我cad04的 lisp 好像调不出来行号!

lenlenq 发表于 2011-5-28 19:22:57

本帖最后由 lenlenq 于 2011-5-28 19:23 编辑

好像那个版本的都没有行号的。

simon8001 发表于 2011-5-29 19:39:03

回复 lenlenq 的帖子

嗯 这几天我也看了好多的论坛 确实没发现 有行号的版本!

winabcd 发表于 2011-5-30 12:19:12

回复 simon8001 的帖子

_$ (setq a 5)
5
_$ (rem a 2)
1
_$ (setq a 4)
4
_$ (rem a 2)
0
_$
没有出现你讲的nil
页: [1] 2
查看完整版本: 求助斑竹 判断奇偶性?(已完结)