[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 bailong360 于 2015-6-7 19:06 编辑

mark一下
数字可以大于10难度一下子就上去了

TOP

  1. #lang racket
  2. (define (check guess)
  3.   (define real (make-vector 10 1))
  4.   (define mistake 0)
  5.   (for-each (lambda (x)
  6.               (for-each (lambda (y)
  7.                           (vector-set! real y (+ 1 (vector-ref real y))))
  8.                         (integer->list x)))
  9.             (vector->list guess))
  10.   (for-each (lambda (x)
  11.               (when (eqv? x #f)
  12.                 (set! mistake 1)))
  13.             (map = (vector->list guess) (vector->list real)))
  14.   (when (= 0 mistake)
  15.     (display guess)
  16.     (newline)))
  17. (define (integer->list num)
  18.   (define index '(0 1 2 3 4 5 6 7 8 9))
  19.   (define str '())
  20.   (define (cc)
  21.     (set! str (cons (list-ref index (modulo num 10)) str))
  22.     (set! num (floor (/ num 10)))
  23.     (if (= 0 num)
  24.         str
  25.         (cc)))
  26.   (cc))
  27. (define (main)
  28.   (define guess (make-vector 10 1))
  29.   (define max '((1 2) (1 2 3 4 5 6 7 8 9 10 11) (1 2 3) (1 2) (1 2) (1 2) (1 2) (1 2)))
  30.   (define (loop index)
  31.     (for-each (lambda (x)
  32.                 (vector-set! guess index x)
  33.                 (if (= index 7)
  34.                     (check guess)
  35.                     (loop (+ index 1))))
  36.               (list-ref max index)))
  37.   (loop 0))
  38. (time (main))
复制代码
代码毫无技术含量可言,主要工作都是在草稿纸上完成的=_=
其实就是笔算把范围缩小,然后再穷举(汗)
  1. 输出:
  2. #(1 7 3 2 1 1 1 2 1 1)
  3. #(1 11 2 1 1 1 1 1 1 1)
  4. cpu time: 62 real time: 63 gc time: 0
复制代码
2

评分人数

TOP

返回列表